对象的意义在于封装。而不是继承和多态。如果失去了封装,对象便会退化为数据的集合,或者说数据结构。继承和封装也变成了无用的玩具。代码将失去活力,走向死亡。那什么是封装?封装就是隐藏实现,是遵守约定,是拥抱变化。封装做好了,代码便会好。封装失败了,代码便会慢慢僵化,走向深渊。这也是很多人的误区,以为对象是数据和对数据操作的集合。错了,对象是对美好未来的约定。
没有对象是万万不能的,然而,对象也不是万能的。(从拥抱变化的角度)有时为了写出更容易扩展的代码,对对象隐藏的实现的侵入是在所难免的。这显然违反了迪米特法则,但是理论永远是完美的,现实却往往满目疮痍。这绝非是自我安慰的借口,而是在现实基础上的理性决策。(例如spring就会要求bean实现自省,这显然会将内部实现暴露无遗)
cleanCode-对象和数据结构
最新推荐文章于 2022-08-22 23:29:05 发布