5迪米特法则
作者:互联网
迪米特法则
迪米特法则英文名称是Law of Demeter,简称LoD.1迪米特法则的定义迪米特法则又叫最少知识原则(Least Knowledge Principle,LKP),意思是一个对象应当对其他对象尽可能少的了解。迪米特法则最初是用来作为面向对象的系统设计风格的一种法则,在1987年由Lan Holland 在美国东北大学一个叫做迪米特的项目设计提出的,因此叫做迪米特法则。这条法则实际上是很多著名系统,例如火星登陆软件系统、木星的欧罗巴微型轨道飞船的软件系统的指导设计原则。迪米特法则不同于其他的OO设计原则,它具有很多种表述方式,其中具有代表性的试一下几种表述:
- 只与你直接的朋友们通信(Only talk to your immdiate friends);
- 不要跟"陌生人"说话(Don't talk to strangers)
- 每一个软件单位对其他的单位都只有最少的了解,这些了解仅限于那些与本单位密切相关的软件单位。
2迪米特法则的应用案例:“某人”、“朋友”、“陌生人”的具体类图。
陌生者:
package com.eric.设计模式原则.迪米特法则的应用;
/**
* @author Eric
* @ProjectName my_design_23
* @description 陌生人类
* @CreateTime 2020-11-23 19:04:33
*/
//陌生者
public class Stranger {
public void strangerMethod(){
System.out.println("这是陌生者方法");
}
}
朋友、中间类
package com.eric.设计模式原则.迪米特法则的应用;
/**
* @author Eric
* @ProjectName my_design_23
* @description 朋友、中间类
* @CreateTime 2020-11-23 19:05:55
*/
//朋友、中间类
public class Friend {
//声明陌生实例
private Stranger stranger = new Stranger();
//访问
public void forward(){
stranger.strangerMethod();
}
//其他方法
public void friendMethod(){
System.out.println("这是朋友的方法。");
}
}
某人
package com.eric.设计模式原则.迪米特法则的应用;
/**
* @author Eric
* @ProjectName my_design_23
* @description 某人类
* @CreateTime 2020-11-23 19:03:21
*/
public class Someone {
//通过Friend间接调用Stranger类中的方法
public void call(Friend friend){
friend.forward();
}
}
测试类
package com.eric.设计模式原则.迪米特法则的应用;
/**
* @author Eric
* @ProjectName my_design_23
* @description 迪米特原则的测试类
* @CreateTime 2020-11-23 19:09:02
*/
public class test {
public static void main(String[] args) {
Someone one = new Someone();
one.call(new Friend());
}
}
通过上述代码可以看到,Someone没有与Stranger类直接联系,而是通过Friend类进行间接访问,这样减少了类之间的关系,减低了类之间的耦合。迪米特法则的核心观念就是类之间的解耦、弱耦合,只有弱耦合了以后,类的复用率才可以提高。在设计模式中,对迪米特法则进行应用的设计模式有如下两个:
- 外观模式
- 中介者模式
来自为知笔记(Wiz)
标签:米特,法则,Stranger,23,设计模式,public 来源: https://www.cnblogs.com/zyl-0110/p/14027190.html