迪米特法则

迪米特法则,又叫最少知识原则,就是说,一个对象应当对其他对象有尽可能少的了解。

狭义的迪米特法则:

如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相关作用。如果其中的一个类需要调用另外一个类的某种方法的话,可以通过第三者转发这个调用。

缺点:

1.会在系统中造出大量的小方法,散落在系统的各个角落。这些方法仅仅是传递间接的调用,因此与系统的逻辑无关。

2.会造成系统的不同模块之间通信效率的降低,也会使系统的不同模块之间不容易协调。

举例:
假如一个人想认识朋友的朋友,那么这时候他一般会让朋友给对方介绍自己,而不是直接的就上去搭讪(线条连接可以直接交流的双方)。


这个过程的实现就是:

首先得我对朋友说,让他介绍下我给陌生人:

public class Person {
	private String name = "张三";

	public void talking(Friend friend) {
		System.out.println("你好,我是" + name);
		friend.introduce(name);
	}
}
朋友听到后,会转发这个消息给陌生人:

public class Friend {
	private Stranger stranger;

	public void introduce(String name) {
		stranger.talking(name);
	}

	public Stranger getStranger() {
		return stranger;
	}

	public void setStranger(Stranger stranger) {
		this.stranger = stranger;
	}
}
然后陌生人才会响应我发出的消息:

public class Stranger {
	private String name;

	public Stranger(String name) {
		this.name = name;
	}

	public void talking(String name) {
		System.out.println("你好 ," + name + ",我是" + this.name);
	}
}
测试:

Stranger stranger = new Stranger("李四");
		Friend friend = new Friend();
		friend.setStranger(stranger);
		Person person = new Person();
		person.talking(friend);
这样,就通过朋友的介绍认识了陌生人。


广义的迪米特法则:

迪米特法则讨论的是对象之间的信息流量,流向及信息的影响控制。它的主要用意是控制信息的过载。在运用的过程中,要注意以下几点:

在类的划分上,应当创建有弱耦合的类。类之间的耦合越弱,越有利于复用。一个处于弱耦合中德类,一旦被修改,不会对有关系的类造成波及。

在类的结构设计中,每一个类都应当尽量降低成员的访问权限。

在类的设计中,只要有可能,一个类应当设计成不变类。

在对其他类的引用上,一个对象对其对象的引用应当降到最低。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值