Java设计模式之三十(迪米特法则)

一、什么是迪米特法则

迪米特法则(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


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值