国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

設(shè)計模式詳解-外觀模式

這篇具有很好參考價值的文章主要介紹了設(shè)計模式詳解-外觀模式。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

類型:結(jié)構(gòu)型模式

實現(xiàn)原理:定義了一個高層接口,向現(xiàn)有的系統(tǒng)中的一組接口提供一致的界面

目的:降低訪問復雜系統(tǒng)的內(nèi)部子系統(tǒng)時的復雜度,簡化客戶端之間的接口,使系統(tǒng)更加容易使用

何時使用:簡化復雜系統(tǒng),方便操作

解決方法:對客戶端和系統(tǒng)解耦,讓外觀類與系統(tǒng)耦合

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

應用實例:電腦操作系統(tǒng)

優(yōu)點: 1、解耦 2、靈活 3、安全

缺點:不符合開閉原則,改東西麻煩,繼承重寫困難。

使用場景:為復雜的模塊或子系統(tǒng)提供外界訪問的模塊文章來源地址http://www.zghlxwxcb.cn/news/detail-658951.html

實現(xiàn)

步驟 1
        創(chuàng)建一個接口。

        Shape.java
public interface Shape {
    void draw();
}
步驟 2
        創(chuàng)建實現(xiàn)接口的實體類。

        Rectangle.java
public class Rectangle implements Shape {

    @Override
    public void draw() {
        System.out.println("Rectangle::draw()");
    }
}
Square.java
public class Square implements Shape {

    @Override
    public void draw() {
        System.out.println("Square::draw()");
    }
}
Circle.java
public class Circle implements Shape {

    @Override
    public void draw() {
        System.out.println("Circle::draw()");
    }
}
步驟 3
        創(chuàng)建一個外觀類。

        ShapeMaker.java
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();
    }
}
步驟 4
        使用該外觀類畫出各種類型的形狀。

        FacadePatternDemo.java
public class FacadePatternDemo {
    public static void main(String[] args) {
        ShapeMaker shapeMaker = new ShapeMaker();

        shapeMaker.drawCircle();
        shapeMaker.drawRectangle();
        shapeMaker.drawSquare();
    }
}
步驟 5
        執(zhí)行程序,輸出結(jié)果:

        Circle::draw()
        Rectangle::draw()
        Square::draw()
        
這段代碼展示了外觀模式的實現(xiàn)步驟:

創(chuàng)建一個接口 Shape,其中定義了一個抽象方法 draw(),表示繪制形狀的操作。
創(chuàng)建三個實現(xiàn)類 Rectangle、SquareCircle,它們分別實現(xiàn)了 Shape 接口,并實現(xiàn)了 draw() 方法,用于具體繪制各種形狀。
創(chuàng)建一個外觀類 ShapeMaker,該類包含了對上述三個形狀的引用,通過實例化相應的對象來創(chuàng)建這些形狀。外觀類提供了三個公共方法 drawCircle()、drawRectangle()drawSquare(),分別調(diào)用對應形狀的 draw() 方法。
創(chuàng)建一個 FacadePatternDemo 類作為主類,通過實例化 ShapeMaker 對象,并調(diào)用其方法來使用外觀類畫出各種類型的形狀。
最后執(zhí)行程序,輸出結(jié)果依次為 "Circle::draw()"、"Rectangle::draw()""Square::draw()",表示成功繪制了圓形、矩形和正方形。
這個例子中,外觀模式被用于隱藏創(chuàng)建形狀對象和調(diào)用繪制方法的復雜性??蛻舳酥恍枰ㄟ^外觀類提供的簡單接口調(diào)用方法,而無需了解底層的具體實現(xiàn)。這樣可以簡化客戶端的使用,并且在后續(xù)需要修改具體形狀的實現(xiàn)時,只需要修改外觀類而不影響到客戶端代碼。```

到了這里,關(guān)于設(shè)計模式詳解-外觀模式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • 《Java極簡設(shè)計模式》第08章:外觀模式(Facade)

    《Java極簡設(shè)計模式》第08章:外觀模式(Facade)

    作者:冰河 星球:http://m6z.cn/6aeFbs 博客:https://binghe.gitcode.host 文章匯總:https://binghe.gitcode.host/md/all/all.html 源碼地址:https://github.com/binghe001/java-simple-design-patterns/tree/master/java-simple-design-facade 沉淀,成長,突破,幫助他人,成就自我。 本章難度:★★☆☆☆ 本章重點:用最

    2024年02月07日
    瀏覽(19)
  • 【Java面試題】設(shè)計模式之七種結(jié)構(gòu)性模式——代理模式、適配器模式、橋接模式、裝飾模式、外觀模式、享元模式、組合模式

    目錄 一、代理模式 二、適配器模式 三、橋接模式 四、裝飾模式 五、外觀模式 六、享元模式 七、組合模式 概念: 代理模式是為其他對象提供一種以代理控制對這個對象的訪問。在某些情況下,一個對象不適合或者不能直接引用另一個對象,而代理對象可以在客戶端和目標對

    2023年04月09日
    瀏覽(26)
  • 設(shè)計模式系列-外觀模式

    設(shè)計模式系列-外觀模式

    一、上篇回顧 上篇我們主要講述了創(chuàng)建型模式中的最后一個模式-原型模式,我們主要講述了原型模式的幾類實現(xiàn)方案,和原型模式的應用的場景和特點,原型模式 適合在哪些場景下使用呢?我們先來回顧一下我們上篇講述的3個常用的場景。 1、我們在運行態(tài)的時候,動態(tài)的

    2024年02月09日
    瀏覽(21)
  • 設(shè)計模式之外觀模式

    設(shè)計模式之外觀模式

    組建一個家庭影院: DVD 播放器、投影儀、自動屏幕、環(huán)繞立體聲、爆米花機,要求完成使用家庭影院的功能,其過程為:直接用遙控器: 統(tǒng)籌各設(shè)備開關(guān) 開爆米花機 放下屏幕 開投影儀 開音響 開 DVD,選 dvd 去拿爆米花 調(diào)暗燈光 播放 觀影結(jié)束后,關(guān)閉各種設(shè)備 在 ClientTest

    2024年02月09日
    瀏覽(30)
  • 設(shè)計模式-外觀模式

    ? ? ?外觀模式(Facade Pattern)是屬于結(jié)構(gòu)型的設(shè)計模式,它的主要目的是為子系統(tǒng)中的一組接口提供一個統(tǒng)一且更簡單的接口,還簡化了客戶端調(diào)用子系統(tǒng)功能的過程。 1 Facade(外觀類) : Facade 類提供了對子系統(tǒng)的簡潔、一致的接口。它包含了子系統(tǒng)中的多個模塊或組件的

    2024年01月19日
    瀏覽(39)
  • 設(shè)計模式:外觀模式

    外觀模式是一種結(jié)構(gòu)型設(shè)計模式,它提供了一個統(tǒng)一的接口,用于訪問子系統(tǒng)中的一組接口。外觀模式隱藏了子系統(tǒng)的復雜性,使得客戶端能夠更簡單地使用子系統(tǒng)的功能。 外觀模式的核心思想是將復雜的子系統(tǒng)封裝在一個外觀類中,客戶端只需要與外觀類進行交互,而不需

    2024年02月07日
    瀏覽(32)
  • 設(shè)計模式(8)外觀模式

    設(shè)計模式(8)外觀模式

    一、 1、使用背景:降低訪問復雜系統(tǒng)的內(nèi)部子系統(tǒng)時的復雜度,簡化客戶端之間的接口。 2、定義: 為子系統(tǒng)中的一組接口定義一個一致的界面,此模式定義了一個高層接口,這個接口使得這一子系統(tǒng)更加容易使用。完美地體現(xiàn)了依賴倒轉(zhuǎn)原則和迪米特法則的思想。 3、結(jié)構(gòu)

    2024年02月11日
    瀏覽(23)
  • 設(shè)計模式之~外觀模式

    設(shè)計模式之~外觀模式

    定義: ????????為子系統(tǒng)中的一組接口提供一個一致的界面,此模式定義了一個高層接口,這個接口使得這一子系統(tǒng)更加容易使用。 結(jié)構(gòu)圖: 區(qū)分中介模式: 門面模式對外提供一個接口 中介模式對內(nèi)提供一個接口 優(yōu)點: 松耦合:用戶與子系統(tǒng)解耦,屏蔽子系統(tǒng);可以

    2024年02月07日
    瀏覽(36)
  • js設(shè)計模式:外觀模式

    js設(shè)計模式:外觀模式

    將復雜的功能封裝成可以簡單調(diào)用的方法,無需知道內(nèi)部的具體邏輯,只需要知道怎么去使用 類似于一把槍,你可以不知道內(nèi)部的槍機,擊發(fā)機,復進簧,槍管,導氣裝置,彈夾是怎么合作配合完成發(fā)射和自動填彈,你只需要知道你扣動扳機就能完成這一系列復雜的操作,而那個扳機就是

    2024年02月22日
    瀏覽(20)
  • 設(shè)計模式之外觀模式筆記

    設(shè)計模式之外觀模式筆記

    記錄下學習設(shè)計模式-外觀模式的寫法。JDK使用版本為1.8版本。 意圖 :為子系統(tǒng)中的一組接口提供一個一致的界面,F(xiàn)acade模式定義了一個高層接口,這個接口使得這一子系統(tǒng)更加容易使用。 結(jié)構(gòu) : 其中: Facade知道哪些子系統(tǒng)類負責處理請求;將客戶的請求代理給適合的子系統(tǒng)

    2024年02月11日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包