回复:求教:关于封装概念的问题。

封装不是意味着与世隔绝,事实上大部分类都需要提供公共接口以便外部使用自己或通信,封装的本意是尽可能保持外部无关操作的封闭性,但是必要的接口常常是无可避免的。

所以问题的关键不是是否使用了public的set或get,而是set是否设计的足够合理,能够保持最低限度的数据修改使用,同样,get能否保持最低限度的接口数据读取。

比如说:一个窗口类,如果不通过一个方法将用户所期待的窗口属性传递给窗口类,窗口就无法完成描画,而当窗口属性变化时,窗口的当前属性有必要现行获取以获得较高的描画效率(位置,颜色,风格等是否需要变化)。

是否对set或get进行限制取决于类的设计,如果set或get的数据对象均为类内部的话使用那就定义成protect(继承类)或private(基类),如果需要与外部交换那就定义成为public如果两者都有,建议定义成
1.set,get公共,
2.setProtect,getProtect
3.setPrivate,getPrivate
将访问对象分别放入个自己的访问范围所在的方法中。










请您先登陆,再发跟帖!