设计模式(七)迪米特法则(LoD)

▼魔方 西西 提交于 2019-12-20 10:33:50

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

迪米特法则(LoD):一个对象应当对其他对象有尽可能少的了解。

广义迪米特法则在类的设计上的体现

1.优先考虑将一个类设置成不变类

一个对象与外界通信大体分成两种,一种是改变这个对象的状态的,另一种是不改变这个对象的状态的。如果一个对象的内部状态根本就是不可能改变的,那么它与外界的通信就大打折扣。当涉及任何一个类时,都首先考虑这个类的状态是否需要改变。即使一个类必须是可变类,在给它的属性设置赋值方法时,除非真的需要,否则不要为一个属性设置赋值方法。

2.尽量降低一个类的访问权限

对于顶级的类来说,只有两个可能的访问等级:

  • protected:这是默认的访问权限。如果一个类是protected的,那么它就只能从当前库访问。
  • public :如果一个类时public的,那么这个类从当前库和其他库可以访问。

一个类设置成protected的好处是,一旦这个类发生修改,那么受影响的客户端必定都在这个库内部。由于一个软件包有他自己的库结构,因此一个访问权限为protected是不会被应用程序使用的。

3.谨慎的使用Serializable

一个类如果实现了Serializable接口的话,应用程序可以将这个类的实例串行话,然和再并行化。由于串行化和并行化涉及到类的内部结构,如果这个类的内部private结构在一个新的版本发生变化的话,那么应用程序可能会根据新版本的结构试图将一个老版本的串行化结果并行化,这会导致失败。除非绝对必要,不要使用Serializable。

4.尽量降低成员的访问权限

在设计一个类的方法时,必须首先考虑将其设置成private。只有当前库中还有别的类需要调用这个方法时,才可将其访问权限改成protected.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!