java设计模式之迪米特法则(俗称:最少知识原则)

 迪米特法则

摘自:百度百科设计模式

    迪米特法则(Law of Demeter)又叫做最少知识原则(Least Knowledge Principle 简写LKP),就是说一个对象应当对其余对象有尽量少的了解,不和陌生人说话。英文简写为: LoD.spa

 模式与意义

摘自:百度百科设计

    迪米特法则能够简单说成:talk only to your immediate friends。 对于OOD来讲,又被解释为下面几种方式:一个软件实体应当尽量少的与其余实体发生相互做用。每个软件单位对其余的单位都只有最少的知识,并且局限于那些与本单位密切相关的软件单位。对象

迪米特法则的初衷在于下降类之间的耦合。因为每一个类尽可能减小对其余类的依赖,所以,很容易使得系统的功能模块功能独立,相互之间不存在(或不多有)依赖关系。ip

迪米特法则不但愿类之间创建直接的联系。若是真的有须要创建联系,也但愿能经过它的友元类来转达。所以,应用迪米特法则有可能形成的一个后果就是:系统中存在大量的中介类,这些类之因此存在彻底是为了传递类之间的相互调用关系——这在必定程度上增长了系统的复杂度。ci

有兴趣能够研究一下设计模式的门面模式Facade)和中介模式(Mediator),都是迪米特法则应用的例子。get

 摘自:大话设计模式it

    迪米特法则,若是两个类没必要彼此直接通向,那么这两个类就不该当发生直接的相互做用。若是其中一个类须要调用另外一个累哦的某一个方法的话,能够经过第三者转发这个调用。ast

    迪米特法则首先强调的前提是在类的结构设计上,每个类都应当下降成员的访问权限,也就是说,一个类包装好本身的private状态,不须要让别的类知道的字段或行为就不要公开。百度

    面向对象的设计原则和面向对象的三大特性本就不是矛盾的。迪米特法则其根本思想,是强调了类之间的松耦合。类之间的耦合越弱,越有利于复用,一个处在弱耦合的类被修改,不会对有关系的类形成搏击,也就是说,信息的隐藏促进了软件的复用。

优势

减小对象之间的耦合性

摘自大话设计模式:

 

相关文章
相关标签/搜索