最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java設計模式之外觀模式的實現(xiàn)方式

 更新時間:2023年11月30日 10:03:43   作者:啊幾  
這篇文章主要介紹了Java設計模式之外觀模式的實現(xiàn)方式,外觀模式隱藏系統(tǒng)的復雜性,并向客戶端提供了一個客戶端可以訪問系統(tǒng)的接口,這種類型的設計模式屬于結構型模式,它向現(xiàn)有的系統(tǒng)添加一個接口,來隱藏系統(tǒng)的復雜性,需要的朋友可以參考下

什么是外觀模式?

外觀模式(Facade Pattern)隱藏系統(tǒng)的復雜性,并向客戶端提供了一個客戶端可以訪問系統(tǒng)的接口。這種類型的設計模式屬于結構型模式,它向現(xiàn)有的系統(tǒng)添加一個接口,來隱藏系統(tǒng)的復雜性。 這種模式涉及到一個單一的類,該類提供了客戶端請求的簡化方法和對現(xiàn)有系統(tǒng)類方法的委托調用。

實例說明

現(xiàn)在有一個回家打開燈,打開空調,使用電腦的場景??梢允褂猛庥^模式設計,燈、空調和電腦都是子系統(tǒng)

三個子系統(tǒng)類

public class Computer {
    public void on(){
        System.out.println("打開電腦");
    }
    public void off(){
        System.out.println("關閉電腦");
    }
}
public class Light {
    public void on(){
        System.out.println("打開燈");
    }
    public void off(){
        System.out.println("關閉燈");
    }
}

public class AirConditioning {
    public void on(){
        System.out.println("打開空調");
    }
    public void off(){
        System.out.println("關閉空調");
    }
}

如果不適用外觀模式

客戶端類

public class Client {
    public static void main(String[] args) {
        AirConditioning airConditioning = new AirConditioning();
        Computer computer = new Computer();
        Light light = new Light();
        //所有子系統(tǒng)打開
        light.on();
        airConditioning.on();
        computer.on();
        //所有子系統(tǒng)關閉
        computer.off();
        airConditioning.off();
        light.off();
    }
}

子系統(tǒng)和客戶端耦合,每當子系統(tǒng)有改變,都需要修改客戶端

當使用外觀模式

外觀類

public class RoomFacade {
    AirConditioning airConditioning;
    Light light;
    Computer computer;

    public RoomFacade(){
        airConditioning = new AirConditioning();
        light = new Light();
        computer = new Computer();
    }

    public void on(){
        light.on();
        airConditioning.on();
        computer.on();
    }
    
    public void off(){
        computer.off();
        airConditioning.off();
        light.off();
    }
}

接下來客戶端只需要和外觀類交互即可,不用知道子系統(tǒng)內部的實現(xiàn)

客戶端類

public class Client {
    public static void main(String[] args) {
        RoomFacade facade = new RoomFacade();
        facade.on();
        facade.off();
    }
}

可見客戶端想使用子系統(tǒng)十分簡單

使用場景

  • 為復雜的模塊或子系統(tǒng)提供外界訪問的模塊。
  • 子系統(tǒng)相對獨立。
  • 預防低水平人員帶來的風險。

外觀模式的優(yōu)缺點

優(yōu)點

  • 客戶端不與系統(tǒng)耦合。雖然外觀類和系統(tǒng)耦合,但是客戶端不與系統(tǒng)耦合,如果增加子系統(tǒng),并不需要修改客戶端,只需要修改外觀類。
  • 簡單易用??蛻舳瞬恍枰私庾酉到y(tǒng)內部實現(xiàn),只需要和外觀類交互即可,調用起來非常簡單。

缺點

  • 如果設計不當,增加新的子系統(tǒng)可能需要修改外觀類源代碼,違反開閉原則。

到此這篇關于Java設計模式之外觀模式的實現(xiàn)方式的文章就介紹到這了,更多相關Java外觀模式內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 淺析如何利用Spring AI構建一個簡單的問答系統(tǒng)

    淺析如何利用Spring AI構建一個簡單的問答系統(tǒng)

    Spring AI是Spring生態(tài)系統(tǒng)的最新成員,旨在簡化AI服務與Spring應用的集成過程,本文小編就來和大家簡單介紹一下如何利用Spring AI構建一個簡單的問答系統(tǒng)吧
    2025-05-05
  • sentinel?整合spring?cloud限流的過程解析

    sentinel?整合spring?cloud限流的過程解析

    這篇文章主要介紹了sentinel?整合spring?cloud限流,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • Java實現(xiàn)將圖片上傳到webapp路徑下 路徑獲取方式

    Java實現(xiàn)將圖片上傳到webapp路徑下 路徑獲取方式

    這篇文章主要介紹了Java實現(xiàn)將圖片上傳到webapp路徑下 路徑獲取方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • 基于google zxing的Java二維碼生成與解碼

    基于google zxing的Java二維碼生成與解碼

    這篇文章主要為大家詳細介紹了基于google zxing的Java二維碼生成與解碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • SpringBoot后端接收數(shù)組對象的實現(xiàn)

    SpringBoot后端接收數(shù)組對象的實現(xiàn)

    這篇文章主要介紹了SpringBoot后端接收數(shù)組對象的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 基于SpringBoot+FFmpeg+ZLMediaKit實現(xiàn)本地視頻推流

    基于SpringBoot+FFmpeg+ZLMediaKit實現(xiàn)本地視頻推流

    文章介紹了如何在服務器上安裝和配置ZLMediaKit和FFmpeg,以及如何使用SpringBoot實現(xiàn)視頻推流和播放功能,包括環(huán)境準備、后端實現(xiàn)和使用說明,涵蓋了推流和播放的完整流程,需要的朋友可以參考下
    2025-11-11
  • 最新評論

    门头沟区| 卓资县| 商南县| 霍山县| 斗六市| 吉安市| 平利县| 兖州市| 南安市| 廉江市| 阿城市| 兰考县| 阜南县| 合阳县| 密云县| 灌阳县| 天镇县| 凤翔县| 龙泉市| 故城县| 伊金霍洛旗| 安吉县| 宣城市| 鄂州市| 清水县| 天祝| 黄浦区| 正镶白旗| 富民县| 黎城县| 嘉兴市| 旬阳县| 西盟| 卢龙县| 东辽县| 上栗县| 珠海市| 彭泽县| 莱芜市| 城步| 钦州市|