首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

【设计形式】迪米特法则

2012-07-19 
【设计模式】迪米特法则一,概述迪米特法则(Law of Demeter)又叫作最少知识原则(Least Knowledge Principle

【设计模式】迪米特法则

一,概述

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

        如果两个类不必彼此直接通信,那么这两个类就不应当发生直接相互作用。。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。

         在类的架构上,每一个类都应尽量降低成员的访问权限(private)。类之间的松耦合越弱,越容易复用,就是说处在弱耦合中的类容易被修改。

 

二,示例

           形象一点的比喻类似于:监狱内的犯人是不应该跟外面的人接触的,当然或许会有探亲的。这里的监狱就是类,里面的犯人就是类内部的信息,而监狱里的狱警就相当于迪米特法则的执行者

         例:家人探望犯人

家人:家人只与犯人是亲人,但是不认识他的狱友

public class Prison { publicstatic void main(String args[]) {Family family =new Family(); family.visitPrisoner(newPrisoners()); }}

运行结果

家人说:犯人和狱友之间应该互相帮助...
犯人说:我们是狱友...

这样家人和狱友就分开了,但是也表达了家人希望狱友能跟犯人互相帮助的意愿。也就是两个类通过第三个类(家人里面的犯人)实现信息传递

网上还有如下一些关于应用迪米特法则的注意事项:

① 在类的划分上,应该创建有弱耦合的类;
② 在类的结构设计上,每一个类都应当尽量降低成员的访问权限;
③ 在类的设计上,只要有可能,一个类应当设计成不变类;
④ 在对其他类的引用上,一个对象对其它对象的引用应当降到最低;
⑤ 尽量降低类的访问权限;
⑥ 谨慎使用序列化功能;
⑦ 不要暴露类成员,而应该提供相应的访问器(属性)。

 

热点排行