在软件开发中,为了提高软件系统的可维护性和可重用性,增加软件的可扩展性和灵活性,程序员应尽可能按照六条原则开发程序,以提高软件开发效率,节约软件开发成本和维护成本。这六个原则是开闭原则、里希特替换原则、依赖倒置原则、接口隔离原则、迪米特里规则和综合重用原则。下面主要介绍Dimitri规则。
迪米特里定律也被称为知识最少原则。
只和你的直系朋友说话,不要和陌生人说话。
这意味着,如果两个软件实体不需要直接通信,则不应该有直接的相互呼叫,并且呼叫可以通过第三方转发。其目的是减少类之间的耦合,提高模块的相对独立性。
Dimitri定律中的“朋友”是指当前对象本身、当前对象的成员对象、当前对象创建的对象、当前对象的方法参数等。这些对象与当前对象关联、聚合或组合,并且可以直接访问这些对象的方法。
让我们看一个例子来理解迪米特里定律
【示例】明星与经纪人关系示例
由于明星致力于艺术,许多日常事务都由经纪人处理,如与粉丝的会面、与媒体公司的业务谈判等。这里的经纪人是明星的朋友,而粉丝和媒体公司是陌生人,因此适用迪米特里定律。
类图如下:
代码如下:
明星类(Star)
public class Star {
private String name;
public Star(String name) {
this.name=name;
}
public String getName() {
return name;
}
}
粉丝类(Fans)
public class Fans {
private String name;
public Fans(String name) {
this.name=name;
}
public String getName() {
return name;
}
}
媒体公司类(Company)
public class Company {
private String name;
public Company(String name) {
this.name=name;
}
public String getName() {
return name;
}
}
经纪人类(Agent)
public class Agent {
private Star star;
private Fans fans;
private Company company;
public void setStar(Star star) {
this.star = star;
}
public void setFans(Fans fans) {
this.fans = fans;
}
public void setCompany(Company company) {
this.company = company;
}
public void meeting() {
System.out.println(fans.getName() + “与明星” + star.getName() + “见面了。”);
}
public void business() {
System.out.println(company.getName() + “与明星” + star.getName() + “洽淡业务。”);
}
}
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!