第5章 最少知识原则
最小知识原则(Least Knowledge Principle,LKP):
一个对象应该对其他对象有最少的了解。
通俗地讲,一个类应该对自己需要耦合或调用的类知道得最少。
最小知识原则包含以下4层含义:
- 只和朋友交流
Only talk to your immedate friends(只喝直接朋友通信。)
两个对象之间的耦合就成为朋友关系。
朋友类:出现在在成员变量、方法的输入输出参数中的类成为成员朋友类,而出现在方法内部的类不属于朋友类。
- 朋友间也是有距离的
朋友类之间也不应该暴露太多方法。
- 是自己的就是自己的
如果一个方法放在本类中,既不增加类间关系,也对本类不产生负面影响,就放置在本类中。
- 谨慎使用Serializable
可能会因为对类的更改未在服务器和客户端之间同步而引起序列化失败问题。
最佳实践:
类间解耦,弱耦合。但其要求的结果就是产生大量的中转或跳转类,导致系统的复杂性提高,同时也为维护带来了难度。如果一个类跳转两次以上才访问到另一个类,就需要想办法进行重构了。