Java設(shè)計(jì)模式的外觀模式如何實(shí)現(xiàn)

本篇內(nèi)容介紹了“Java設(shè)計(jì)模式的外觀模式如何實(shí)現(xiàn)”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

成都創(chuàng)新互聯(lián)公司主營(yíng)文登網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都app軟件開發(fā)公司,文登h5小程序開發(fā)搭建,文登網(wǎng)站營(yíng)銷推廣歡迎文登等地區(qū)企業(yè)咨詢

外觀模式

外觀模式(Facade Pattern)隱藏系統(tǒng)的復(fù)雜性,并向客戶端提供了一個(gè)客戶端可以訪問系統(tǒng)的接口。這種類型的設(shè)計(jì)模式屬于結(jié)構(gòu)型模式,它向現(xiàn)有的系統(tǒng)添加一個(gè)接口,來隱藏系統(tǒng)的復(fù)雜性。

這種模式涉及到一個(gè)單一的類,該類提供了客戶端請(qǐng)求的簡(jiǎn)化方法和對(duì)現(xiàn)有系統(tǒng)類方法的委托調(diào)用。

介紹

意圖: 為子系統(tǒng)中的一組接口提供一個(gè)一致的界面,外觀模式定義了一個(gè)高層接口,這個(gè)接口使得這一子系統(tǒng)更加容易使用。

主要解決: 降低訪問復(fù)雜系統(tǒng)的內(nèi)部子系統(tǒng)時(shí)的復(fù)雜度,簡(jiǎn)化客戶端之間的接口。

何時(shí)使用:

1.客戶端不需要知道系統(tǒng)內(nèi)部的復(fù)雜聯(lián)系,整個(gè)系統(tǒng)只需提供一個(gè)"接待員"即可。

2定義系統(tǒng)的入口。

如何解決: 客戶端不與系絨耦合,外觀類與系統(tǒng)耦合。

關(guān)鍵代碼: 在客戶端和復(fù)雜系統(tǒng)之間再加一層.這一層將調(diào)用順序、依賴關(guān)系等處理好。

應(yīng)用實(shí)例:

1.去醫(yī)院看病,要去掛號(hào)、門診、劃價(jià)、取藥,讓患者或患者家屬覺得很復(fù)雜,如果有提供接待人員,只讓接待人員來處理就很方便。

2.JAVA的三層開發(fā)模式。

優(yōu)點(diǎn):

1.減少系統(tǒng)相互依賴。

2.提高了靈活性。

3.提高了安全性。

缺點(diǎn): 不符合開閉原則,如果要改東西很麻煩,繼承重寫都不合適。

使用場(chǎng)景:

1.為復(fù)雜的模塊或子系統(tǒng)提供外界訪問的模塊。

2.子系統(tǒng)相對(duì)獨(dú)立。

3.預(yù)防低水平人員帶來的風(fēng)險(xiǎn)。

實(shí)現(xiàn)

我們將創(chuàng)建一個(gè)Shape接口和實(shí)現(xiàn)了Shape接口的實(shí)體類。下一步是定義一個(gè)外觀類ShapeMaker。

ShapeMaker類使用實(shí)體類來代表用戶對(duì)這些類的調(diào)用。FacadePatternDemo類使用ShapeMaker類來顯示結(jié)果。

Java設(shè)計(jì)模式的外觀模式如何實(shí)現(xiàn)

1.創(chuàng)建一個(gè)項(xiàng)目名稱為facade_pattern的Java項(xiàng)目。

2.創(chuàng)建一個(gè)圖形接口Shape。

package com.js;

/**
 * 繪制圖形的接口
 */
public interface Shape {
    void draw();
}

3.創(chuàng)建圖形實(shí)現(xiàn)類

package com.js;

/**
 * 矩形類
 */
public class Rectangle implements Shape{
    @Override
    public void draw() {
        System.out.println("繪制矩形");
    }
}
package com.js;

/**
 * 正方形類
 */
public class Square implements Shape{
    @Override
    public void draw() {
        System.out.println("繪制正方形");
    }
}
package com.js;

/**
 * 圓形類
 */
public class Circle implements Shape{
    @Override
    public void draw() {
        System.out.println("繪制圓形");
    }
}

4.創(chuàng)建外觀類

package com.js;

/**
 * 外觀類(用來生成制造目標(biāo)對(duì)象
 */
public class ShapeMaker {
    private Shape circle;
    private Shape rectangle;
    private Shape square;

    public ShapeMaker() {
        circle=new Circle();
        rectangle=new Rectangle();
        square=new Square(); 
    }
    
    public void drawCircle(){
        circle.draw();
    }

    public void drawRectangle(){
        rectangle.draw();
    }

    public void drawSquare(){
        square.draw();
    }

}

5.創(chuàng)建入口程序

package com.js;

/**
 * 客戶端看待(盡量簡(jiǎn)單,完成功能)
 */
public class FacadePattern {
    public static void main(String[] args) {
        ShapeMaker maker=new ShapeMaker();
        maker.drawCircle();
        maker.drawRectangle();
        maker.drawSquare();
    }
}

6.結(jié)果

繪制圓形
繪制矩形
繪制正方形

“Java設(shè)計(jì)模式的外觀模式如何實(shí)現(xiàn)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

本文標(biāo)題:Java設(shè)計(jì)模式的外觀模式如何實(shí)現(xiàn)
文章路徑:http://bm7419.com/article36/gipepg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司電子商務(wù)、響應(yīng)式網(wǎng)站、Google服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)