更新時間:2021-08-19 來源:黑馬程序員 瀏覽量:
在軟件開發(fā)中,為了提高軟件系統(tǒng)的可維護(hù)性和可復(fù)用性,增加軟件的可擴(kuò)展性和靈活性,程序員要盡量根據(jù)6條原則來開發(fā)程序,從而提高軟件開發(fā)效率、節(jié)約軟件開發(fā)成本和維護(hù)成本。這六條分別是開閉原則、里氏代換原則、依賴倒轉(zhuǎn)原則、接口隔離原則、迪米特法則、合成復(fù)用原則,下面主要介紹里迪米特法則。
迪米特法則又叫最少知識原則。
只和你的直接朋友交談,不跟“陌生人”說話(Talk only to your immediate friends and not to strangers)。
其含義是:如果兩個軟件實(shí)體無須直接通信,那么就不應(yīng)當(dāng)發(fā)生直接的相互調(diào)用,可以通過第三方轉(zhuǎn)發(fā)該調(diào)用。其目的是降低類之間的耦合度,提高模塊的相對獨(dú)立性。
迪米特法則中的“朋友”是指:當(dāng)前對象本身、當(dāng)前對象的成員對象、當(dāng)前對象所創(chuàng)建的對象、當(dāng)前對象的方法參數(shù)等,這些對象同當(dāng)前對象存在關(guān)聯(lián)、聚合或組合關(guān)系,可以直接訪問這些對象的方法。
下面看一個例子來理解迪米特法則
【例】明星與經(jīng)紀(jì)人的關(guān)系實(shí)例
明星由于全身心投入藝術(shù),所以許多日常事務(wù)由經(jīng)紀(jì)人負(fù)責(zé)處理,如和粉絲的見面會,和媒體公司的業(yè)務(wù)洽淡等。這里的經(jīng)紀(jì)人是明星的朋友,而粉絲和媒體公司是陌生人,所以適合使用迪米特法則。
類圖如下:
代碼如下:
明星類(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; } }
經(jīng)紀(jì)人類(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() + "洽淡業(yè)務(wù)。"); } }
猜你喜歡: