Java设计模式之三十(迪米特法则)
2013-05-09 12:02
169 查看
一、什么是迪米特法则
迪米特法则(Law of Demeter )又叫做最少知识原则,也就是说,一个对象应当对其他对象尽可能少的了解。
迪米特法则最初是用来作为面向对象的系统设计风格的一种法则,于1987年秋天由lan holland在美国东北大学为一个叫做迪米特的项目设计提出的。
二、狭义的迪米特法则
如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一类的某一个方法的话,可以通过第三者转发这个调用。
三、和陌生人说话
四、不要和陌生人说话
五、与依赖倒转原则结合
六、走后门看病
七、办理手续住院
八、迪米特法则和设计模式
1.外观模式
2.中介者模式
代码实现:
某人:
朋友:
陌生人(抽象):
陌生人A:
测试类:
测试结果:
迪米特法则(Law of Demeter )又叫做最少知识原则,也就是说,一个对象应当对其他对象尽可能少的了解。
迪米特法则最初是用来作为面向对象的系统设计风格的一种法则,于1987年秋天由lan holland在美国东北大学为一个叫做迪米特的项目设计提出的。
二、狭义的迪米特法则
如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一类的某一个方法的话,可以通过第三者转发这个调用。
三、和陌生人说话
四、不要和陌生人说话
五、与依赖倒转原则结合
六、走后门看病
七、办理手续住院
八、迪米特法则和设计模式
1.外观模式
2.中介者模式
代码实现:
某人:
package com.qianyan.ex4; public class SomeOne { private Friend friend; private Stranger stranger; public Stranger getStranger() { return stranger; } public void setStranger(Stranger stranger) { this.stranger = stranger; } public Friend getFriend() { return friend; } public void setFriend(Friend friend) { this.friend = friend; } public void play() { System.out.println("someone play"); friend.play(); stranger.play(); } }
朋友:
package com.qianyan.ex4; public class Friend { public void play(){ System.out.println("friends paly"); } }
陌生人(抽象):
package com.qianyan.ex4; public abstract class Stranger { public abstract void play(); }
陌生人A:
package com.qianyan.ex4; public class StrangerA extends Stranger { public void play() { System.out.println("strangerA play"); } }
测试类:
package com.qianyan.ex4; public class MainClass { public static void main(String[] args) { SomeOne zhangsan = new SomeOne(); zhangsan.setFriend(new Friend()); zhangsan.setStranger(new StrangerA()); zhangsan.play(); } }
测试结果:
someone play friends paly strangerA play
相关文章推荐
- Java设计模式——迪米特法则
- Java的设计模式编程中迪米特法则的应用示例
- java设计模式六大原则(5):迪米特法则
- 【GOF23设计模式】_外观模式_公司注册流程_迪米特法则JAVA241
- java设计模式六大原则(5):迪米特法则
- Java设计模式-25-迪米特法则
- JAVA设计模式(二十八)——迪米特法则
- Java设计模式之迪米特法则(Law of Demeter, LoD)
- java 设计模式之迪米特法则
- java设计模式之迪米特法则(LoD)
- JAVA设计模式之迪米特法则
- java设计模式_迪米特法则
- Java与设计模式(七)设计原则--迪米特法则(最少知道原则)
- Java常用设计模式与使用场景
- Java设计模式-代理模式
- java设计模式之建造者模式(3)
- Java-马士兵设计模式学习笔记-观察者模式-OOD 封装Listener
- Java设计模式 观察者模式
- Java/Android 设计模式系列(8)--桥接模式
- Java开发之设计模式--策略模式(Strategy Pattern)