迪米特法则LoD
Law of Demeter ,最少知识原则(Least Konwledge Principle,简写LKP)。如果两个类不彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。
根本思想
强调类之间的松耦合。类之间的耦合越弱,越有利于复用,一个处在弱耦合的类被修改,不会对有关系的类造成波及。
分类
狭义对中介者的确定分为:
1.当前对象本身(this)
2.以参量形式传入到当前对象方法中的对象
3.当前对象的实例变量直接引用的对象
4.当前对象的实例变量如果是一个聚集,那么聚集中的元素也都是朋友
5.当前对象所创建的对象
广义对类的设计上体现:
1.优先考虑将一个类设置成不变类。
2.尽量降低一个类的访问权限。
3.谨慎使用Serializable。
4.尽量降低成员的访问权限。
优点
降低类之间的耦合
缺点
系统中存在大量的中介类,这些类之所以存在哎完全是为了传递类之间的相互调用关系,这就在一定程度上增加了系统的复杂度