我有点不清楚将一个类中的所有成员私有化并制作公共方法来处理突变的想法.原始类型不是问题,它是我不清楚的封装对象.使对象成员私有的好处是能够隐藏不适用于正在构建的类的上下文的方法.缺点是你必须提供公共方法来将参数传递给底层对象(更多方法,更多工作).另一方面,如果您希望为底层对象公开所有方法和属性,那么您是否只能将该对象公开? 以这种方式暴露物体的危险是什么?
例如,我发现暴露了向量或数组列表中的所有内容很有用.我能想到的唯一缺点是,公共成员可能会分配一种类型,而不是通过隐式转换(或某种影响).一个名义上的指定会减少问题的可能性吗?
只是旁注:我理解真正的封装意味着成员是私人的.
我在Effective C++中遇到过这一行:
公共意味着未封装,实际上,未封装意味着不可更改,特别是对于广泛使用的类.广泛使用的类最需要封装,因为它们最能从更好地替换一个实现的能力中受益一
作者的意思是"公共意味着未被封装,实际上,未封装意味着不可改变"?
未封装的如何不可改变?