迪米特法则

来源:互联网 发布:数据库设计说明书实例 编辑:程序博客网 时间:2024/05/19 12:28

其实我不懂只是看着写的好装载的,不喜勿喷

概念:

迪米特法则也称为最少知识原则。一个类应该对自己需要耦合或调用的类知道得最少

你(被耦合或调用的类)的内部是如何复杂都和我没关系那是你的事情,我就知道你提供的public方法,我就调用这么多,其他的一概不关心。

所谓的调用的类(朋友类):

出现在成员变量、方法的输入输出参数中的类称为成员朋友类而出现在方法体内部的类不属于朋友类。


方法是类的一个行为,类竟然不知道自己的行为与其他类产生了依赖关系,这是不允许的。

正确的做法是:

1 public class Teacher {

2   

3     public void commond(GroupLeader groupLeader) {//传了一个GroupLeader类的对象作为形参,此处GroupLeader作为朋友类

 

4         groupLeader.countGirls();5 //调用朋友类公开的方法,这个是可以的

    }

6   

7 }

以下是他朋友类的复杂的内部:

01 public class GroupLeader {

02   

03     private List<Girl> listGirls;//他的属性是ist<Girl>类型的对象

04   

05     public GroupLeader(List<Girl> _listGirls) {//构造方法

06         this.listGirls = _listGirls;//初始化这个属性

07     }

08   

09     public void countGirls() {//公开一个方法

10         System.out.println("女生数量是:" + listGirls.size());//调用了形参的方法

11     }

12   

13 }

总结:

类与类之间的关系是建立在类间的,而不是方法间,因此一个方法尽量不引入一个类中不存在的对象,当然,JDK API提供的类除外。

使用注意点:

迪米特法则要求类羞涩一点,尽量不要对外公布太多的public方法和非静态的public变量,尽量内敛,多使用privatepackage-privateprotected等访问权限。

如果一个方法放在本类中,既不增加类间关系,也对本类不产生负面影响,就放置在本类中。

迪米特法则的核心观念就是类间解耦,弱耦合只有弱耦合了以后,类的复用率才可以提高

0 0
原创粉丝点击