有時我需要暴露一些類成員。例如在以下示例中,class Mechanic
可能需要直接訪問Engine
組件。我已經多次讀到所有字段都應該由mutator(accessor)方法訪問,因爲有幾個原因。但是,有沒有提供非const引用吸氣時任何優勢:提供非const引用getter有意義
class Car
{
public:
Engine & engine()
{
return m_engine;
}
//as a consequence you will also need to provide const version
const Engine & engine() const
{
return m_engine;
}
private:
Engine m_engine;
}
過簡單地使發動機部件市民:
class Car
{
public:
Engine engine;
}
您還可以protected
取代public
如果你不喜歡這個例子。在現實生活中,當涉及到System.in
或System.out
時,Java中有一些simlet。看起來,要完全符合某些人的說法,您需要撥打電話System.getInstance().getOut().println("hello world")
。在這種情況下,除了許多官方代碼外,我沒有看到任何好處。
沒有近距離投票,但如果問題的目的是陳述一個理論,然後不同意所有與該理論相反的答案,那麼它可能是「主觀的和論證的」。無論你的理論是對還是錯。 – 2010-11-13 03:07:57
@Steve Jessop:不要這麼熱心,用投票排序問題,你會得到很多不準確的問題(問題不能是主觀的,答案可以)。每個答案都或多或少是主觀的。藉口您的懷疑 - 我正在旅行,最近沒有機會訪問stackoverflow。 – doc 2010-11-13 11:44:14
這就是爲什麼我不確定。如果有人真的在爲某些事情尋找理由,我認爲這很好,即使可能沒有明確的理由。如果有人不相信有任何理由,但仍然要求理由,我認爲「通常會導致對抗和爭論」。這兩種方式都沒有造成嚴重傷害,但後者不是AFAIK網站的目的。 – 2010-11-13 12:18:24