有时我需要暴露一些类成员。例如在以下示例中,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