我有点不清楚要在将类中的所有成员私人化并采取公共方法处理突变方面采取多大的想法。原始类型不是问题,它是我不清楚的封装对象。使对象成员变为私有的好处是能够隐藏不适用于正在构建的类的上下文的方法。缺点是你必须提供公共方法来传递参数给底层对象(更多的方法,更多的工作)。在其他方面,如果你想让所有的方法和属性暴露给底层对象,你能不能公开对象? 以这种方式暴露对象有什么危险?环保对象应该公开还是私密?
例如,我会发现将矢量或数组列表中的所有内容都暴露出来会很有用。我能想到的唯一缺点是,公共成员可能会通过隐式转换(或其他影响)来分配类型。是否能够减少潜在的问题?
只是一个侧面说明:我明白,真正的诠释意味着成员是私人的。
见迪米特法则http://en.wikipedia.org/wiki/Law_of_Demeter,在OOP语言中,您应该尽量减少依赖关系。 这取决于“类”是否真正具有功能,或者实际上是数据结构。如果它只是一个数据结构,那么getters'n'setter看起来有点过分,特别是如果所有的字段都是不可变的(final)。 – earcam 2011-07-02 19:05:20