教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

迪米特法則是什么?軟件設計模式介紹

更新時間:2021年08月19日16時08分 來源:傳智教育 瀏覽次數(shù):

好口碑IT培訓

在軟件開發(fā)中,為了提高軟件系統(tǒng)的可維護性和可復用性,增加軟件的可擴展性和靈活性,程序員要盡量根據(jù)6條原則來開發(fā)程序,從而提高軟件開發(fā)效率、節(jié)約軟件開發(fā)成本和維護成本。這六條分別是開閉原則、里氏代換原則、依賴倒轉(zhuǎn)原則接口隔離原則、迪米特法則、合成復用原則,下面主要介紹里迪米特法則。

迪米特法則又叫最少知識原則。

只和你的直接朋友交談,不跟“陌生人”說話(Talk only to your immediate friends and not to strangers)。

其含義是:如果兩個軟件實體無須直接通信,那么就不應當發(fā)生直接的相互調(diào)用,可以通過第三方轉(zhuǎn)發(fā)該調(diào)用。其目的是降低類之間的耦合度,提高模塊的相對獨立性。

迪米特法則中的“朋友”是指:當前對象本身、當前對象的成員對象、當前對象所創(chuàng)建的對象、當前對象的方法參數(shù)等,這些對象同當前對象存在關聯(lián)、聚合或組合關系,可以直接訪問這些對象的方法。

下面看一個例子來理解迪米特法則

【例】明星與經(jīng)紀人的關系實例

明星由于全身心投入藝術,所以許多日常事務由經(jīng)紀人負責處理,如和粉絲的見面會,和媒體公司的業(yè)務洽淡等。這里的經(jīng)紀人是明星的朋友,而粉絲和媒體公司是陌生人,所以適合使用迪米特法則。

類圖如下:

迪米特法則

代碼如下:

明星類(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)紀人類(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è)務。");
    }
}


猜你喜歡:

軟件設計模式分類有哪些分類?

什么是單例模式?有幾種?Java面試題常問

dos命令切換到d盤:dos常用命令介紹

JDBC連接oracle數(shù)據(jù)庫步驟

傳智教育java開發(fā)培訓課程

0 分享到:
和我們在線交談!