网站上如何做天气插件,做网站那个服务器好,浏览器网址,关于建设工程招标类的公共网站迪米特法则来自于1987年美国东北大学(Northeastern University)一个名为“Demeter”的研究项目。迪米特法则又称为最少知识原则(LeastKnowledge Principle, LKP)#xff0c;其定义如下#xff1a; 迪米特法则(Law of Demeter, LoD)#xff1a;一个软件实体应当尽可能少地与…迪米特法则来自于1987年美国东北大学(Northeastern University)一个名为“Demeter”的研究项目。迪米特法则又称为最少知识原则(LeastKnowledge Principle, LKP)其定义如下 迪米特法则(Law of Demeter, LoD)一个软件实体应当尽可能少地与其他实体发生相互作用。 如果一个系统符合迪米特法则那么当其中某一个模块发生修改时就会尽量少地影响其他模块扩展会相对容易这是对软件实体之间通信的限制迪米特法则要求限制软件实体之间通信的宽度和深度。迪米特法则可降低系统的耦合度使类与类之间保持松散的耦合关系。 迪米特法则还有几种定义形式包括不要和“陌生人”说话、只与你的直接朋友通信等在迪米特法则中对于一个对象其朋友包括以下几类 (1) 当前对象本身(this) (2) 以参数形式传入到当前对象方法中的对象 (3) 当前对象的成员对象 (4) 如果当前对象的成员对象是一个集合那么集合中的元素也都是朋友 (5) 当前对象所创建的对象。 任何一个对象如果满足上面的条件之一就是当前对象的“朋友”否则就是“陌生人”。在应用迪米特法则时一个对象只能与直接朋友发生交互不要与“陌生人”发生直接交互这样做可以降低系统的耦合度一个对象的改变不会给太多其他对象带来影响。 迪米特法则要求我们在设计系统时应该尽量减少对象之间的交互如果两个对象之间不必彼此直接通信那么这两个对象就不应当发生任何直接的相互作用如果其中的一个对象需要调用另一个对象的某一个方法的话可以通过第三者转发这个调用。简言之就是通过引入一个合理的第三者来降低现有对象之间的耦合度。 在将迪米特法则运用到系统设计中时要注意下面的几点在类的划分上应当尽量创建松耦合的类类之间的耦合度越低就越有利于复用一个处在松耦合中的类一旦被修改不会对关联的类造成太大波及在类的结构设计上每一个类都应当尽量降低其成员变量和成员函数的访问权限在类的设计上只要有可能一个类型应当设计成不变类在对其他类的引用上一个对象对其他对象的引用应当降到最低。 下面通过一个简单实例来加深对迪米特法则的理解 Sunny软件公司所开发CRM系统包含很多业务操作窗口在这些窗口中某些界面控件之间存在复杂的交互关系一个控件事件的触发将导致多个其他界面控件产生响应例如当一个按钮(Button)被单击时对应的列表框(List)、组合框(ComboBox)、文本框(TextBox)、文本标签(Label)等都将发生改变在初始设计方案中界面控件之间的交互关系可简化为如图1所示结构 图1 初始设计方案结构图 在图1中由于界面控件之间的交互关系复杂导致在该窗口中增加新的界面控件时需要修改与之交互的其他控件的源代码系统扩展性较差也不便于增加和删除新控件。 现使用迪米特对其进行重构。 在本实例中可以通过引入一个专门用于控制界面控件交互的中间类(Mediator)来降低界面控件之间的耦合度。引入中间类之后界面控件之间不再发生直接引用而是将请求先转发给中间类再由中间类来完成对其他控件的调用。当需要增加或删除新的控件时只需修改中间类即可无须修改新增控件或已有控件的源代码重构后结构如图2所示 图2 重构后的结构图转载于:https://www.cnblogs.com/pangjianxin/p/7911557.html