[设计模式原则]迪米特法则(Law of Demeter, LoD)
2014-04-08 11:11
337 查看
talk only to your immediate friends
“朋友”条件:
1)当前对象本身(this)
2)以参量形式传入到当前对象方法中的对象
3)当前对象的实例变量直接引用的对象
4)当前对象的实例变量如果是一个聚集,那么聚集中的元素也都是朋友
5)当前对象所创建的对象
任何一个对象,如果满足上面的条件之一,就是当前对象的“朋友”,否则就是“陌生人”。
另外一个说法就是:
我们称出现成员变量、方法参数、方法返回值中的类为直接的朋友,而出现在局部变量中的类则不是直接的朋友。
可以参照依赖注入或者称控制反转的方式来理解,依赖注入最基本的三种方式:构造器注入,set注入,依赖获取
1,系统中的类,尽量不要与其他类互相作用,减少类之间的耦合度
2,门面模式和调停者模式实际上就是迪米特法则的应用
调停者模式:
门面模式:
门面模式和调停者模式之间的区别:
门面模式是以封装和隔离为主要任务,
调停者模式则是以调和同事类之间的关系为主,因为要调和,所以具有了子系统的业务逻辑控制。
功能区别:
门面模式只增加了一个门面,他对子系统来说没有增加任何的功能,子系统若脱离门面独立运行完全是可以的。
调停者模式则增加了业务功能,它把各个同事类中的原有耦合关系移植到了调停者,同事类不可能脱离调停者而独立存在。
知晓状态不同:
对门面模式来说,子系统部知道有门面存在,
对调停者来说,每个同事类都知道调停者的存在,因为要依靠调停者调和同事之间的关系
封装程度不同:
门面模式是一种简单的封装,所有的请求处理都委托给子系统完成,
调停者模式则需要有一个中心,由中心协调同事类完成,并且中心本身也完成部分业务,它属于更进一步的业务封装
参考:
设计模式(15)-Facade Pattern
《JAVA与模式》之调停者模式
门面模式VS中介者模式
“朋友”条件:
1)当前对象本身(this)
2)以参量形式传入到当前对象方法中的对象
3)当前对象的实例变量直接引用的对象
4)当前对象的实例变量如果是一个聚集,那么聚集中的元素也都是朋友
5)当前对象所创建的对象
任何一个对象,如果满足上面的条件之一,就是当前对象的“朋友”,否则就是“陌生人”。
另外一个说法就是:
我们称出现成员变量、方法参数、方法返回值中的类为直接的朋友,而出现在局部变量中的类则不是直接的朋友。
可以参照依赖注入或者称控制反转的方式来理解,依赖注入最基本的三种方式:构造器注入,set注入,依赖获取
1,系统中的类,尽量不要与其他类互相作用,减少类之间的耦合度
2,门面模式和调停者模式实际上就是迪米特法则的应用
调停者模式:
门面模式:
门面模式和调停者模式之间的区别:
门面模式是以封装和隔离为主要任务,
调停者模式则是以调和同事类之间的关系为主,因为要调和,所以具有了子系统的业务逻辑控制。
功能区别:
门面模式只增加了一个门面,他对子系统来说没有增加任何的功能,子系统若脱离门面独立运行完全是可以的。
调停者模式则增加了业务功能,它把各个同事类中的原有耦合关系移植到了调停者,同事类不可能脱离调停者而独立存在。
知晓状态不同:
对门面模式来说,子系统部知道有门面存在,
对调停者来说,每个同事类都知道调停者的存在,因为要依靠调停者调和同事之间的关系
封装程度不同:
门面模式是一种简单的封装,所有的请求处理都委托给子系统完成,
调停者模式则需要有一个中心,由中心协调同事类完成,并且中心本身也完成部分业务,它属于更进一步的业务封装
参考:
设计模式(15)-Facade Pattern
《JAVA与模式》之调停者模式
门面模式VS中介者模式
相关文章推荐
- 设计模式六大原则(5):迪米特法则LOD(Law Of Demeter)
- IOS设计模式的六大设计原则之迪米特法则(LOD,Law Of Demeter)
- 设计模式六大原则——迪米特法则(LoD,Law of Demeter)
- IOS设计模式的六大设计原则之迪米特法则(LOD,Law Of Demeter)
- IOS设计模式的六大设计原则之迪米特法则(LOD,Law Of Demeter)
- IOS设计模式的六大设计原则之迪米特法则(LOD,Law Of Demeter)
- "围观"设计模式(5)--迪米特法则(Lod,Law of Demeter)或最少知道原则(Least Knowledge Principle)
- "围观"设计模式(5)--迪米特法则(Lod,Law of Demeter)或最少知道原则(Least Knowledge Principle)
- Java设计模式之迪米特法则(Law of Demeter, LoD)
- 设计模式六大设计原则之迪米特法则(Law Of Demeter)
- 【设计模式六大原则5】迪米特法则(Law Of Demeter)
- 设计模式6大原则之迪米特法则(Law Of Demeter)
- 设计模式六大原则(5)迪米特法则(Law Of Demeter)
- 6大设计原则之迪米特法则(Law Of Demeter)。
- 【六大设计原则】5. 迪米特法则 -Law of Demeter
- 迪米特法则(Law of Demeter)LoD
- 设计模式之六大原则——迪米特法则(LoD,LKP)
- [置顶] 设计模式之六大原则——迪米特法则(LoD,LKP)
- 设计模式六大原则——迪米特法则(LoD)
- 设计模式六大原则之--迪米特法则(LoD)