2. 分析
i.迪米特法则就是指一个软件实体应当尽可能少的与其他实体发生相互作用。这样,当一个模块修改时,就会尽量少的影响其他的模块,扩展会相对容易,这是对软件实体之间通信的限制,它要求限制软件实体之间通信的宽度和深度。
ii. 狭义的迪米特法则:可以降低类之间的耦合,但是会在系统中增加大量的小方法并散落在系统的各个角落,它可以使一个系统的局部设计简化,因为每一个局部都不会和远距离的对象有直接的关联,但是也会造成系统的不同模块之间的通信效率降低,使得系统的不同模块之间不容易协调。
iii. 广义的迪米特法则:指对对象之间的信息流量、流向以及信息的影响的控制,主要是对信息隐藏的控制。信息的隐藏可以使各个子系统之间脱耦,从而允许它们独立地被开发、优化、使用和修改,同时可以促进软件的复用,由于每一个模块都不依赖于其他模块而存在,因此每一个模块都可以独立地在其他的地方使用。一个系统的规模越大,信息的隐藏就越重要,而信息隐藏的重要性也就越明显。
iv. 迪米特法则的主要用途在于控制信息的过载。
1.在类的划分上,应当尽量创建松耦合的类,类之间的耦合度越低,就越有利于复用,一个处在松耦合中的类一旦被修改,不会对关联的类造成太及
2.在类的结构设计上,每一个类都应当尽量降低其成员变量和成员函数的访问权限
3.在类的设计上,只要有可能,一个类型应当设计成不变类
4.在对其他类的引用上,一个对象对其他对象的引用应当降到最低。
3. 实例
i.某系统界面类(如Form1、Form2等类)与数据访问类(如DAO1、DAO2等类)之间的调用关系较为复杂。如图所示:

图(一)

图(二)
图(一)和图(二)分析:
图(一)为什么到图(二)哪?因为这样就可以降低类的耦合性,是类能更加单一,相当于外观模式。面向对象设计原则
这就是程序员必备的七大面向对象设计原则,很喜欢这样的分享,希望你们参与进来,走近博客园、知识将源源不断、、
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-28096-3.html
绝对应该对社会做个正式的道歉
#吴亦凡##挑战者吴亦凡#虽然不能去