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

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

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

說明

記錄下學(xué)習(xí)設(shè)計模式-外觀模式的寫法。JDK使用版本為1.8版本。

Facade(外觀)

意圖:為子系統(tǒng)中的一組接口提供一個一致的界面,F(xiàn)acade模式定義了一個高層接口,這個接口使得這一子系統(tǒng)更加容易使用。
結(jié)構(gòu):
設(shè)計模式之外觀模式筆記

其中:

  • Facade知道哪些子系統(tǒng)類負(fù)責(zé)處理請求;將客戶的請求代理給適合的子系統(tǒng)對象。
  • Subsystem classes實(shí)現(xiàn)子系統(tǒng)的功能;處理有Facade對象指派的任務(wù);沒有Facade的任何相關(guān)信息,即沒有指向Facade的指針。

適用性:

  • 對分層結(jié)構(gòu)系統(tǒng)構(gòu)建時,使用外觀模式定義子系統(tǒng)中每層的入口點(diǎn)可以簡化子系統(tǒng)之間的依賴關(guān)系。
  • 當(dāng)一個復(fù)雜系統(tǒng)的子系統(tǒng)很多時,外觀模式可以為系統(tǒng)設(shè)計一個簡單的接口供外界訪問。
  • 當(dāng)客戶端與多個子系統(tǒng)之間存在很大的聯(lián)系時,引入外觀模式可將它們分離,從而提高子系統(tǒng)的獨(dú)立性和可移植性。

目錄

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

外觀模式示例類圖

設(shè)計模式之外觀模式筆記
以該UML類圖實(shí)現(xiàn)外觀模式示例。

電燈類

package com.example.deesign_patterns.facade;

//電燈類
public class Light {

    //開燈
    public void on(){
        System.out.println("打開電燈。。。");
    }

    //關(guān)燈
    public void off(){
        System.out.println("關(guān)閉電燈。。。");
    }
}

電視機(jī)類

package com.example.deesign_patterns.facade;

//電視機(jī)類
public class TV {

    //開電視機(jī)
    public void on(){
        System.out.println("打開電視機(jī)。。。");
    }

    //關(guān)電視機(jī)
    public void off(){
        System.out.println("關(guān)閉電視機(jī)。。。");
    }
}

空調(diào)類

package com.example.deesign_patterns.facade;

//空調(diào)類
public class AirCondition {

    //開空調(diào)
    public void on(){
        System.out.println("打開空調(diào)。。。");
    }

    //關(guān)空調(diào)
    public void off(){
        System.out.println("關(guān)閉空調(diào)。。。");
    }
}

智能音箱外觀類

package com.example.deesign_patterns.facade;

//智能音箱外觀類,用戶主要和該類對象進(jìn)行交互
public class SmartAppliancesFacade {

    //聚合電燈對象、電視機(jī)對象、空調(diào)對象
    private Light light;
    private TV tv;
    private AirCondition airCondition;

    public SmartAppliancesFacade() {
        light=new Light();
        tv=new TV();
        airCondition=new AirCondition();
    }

    //語音控制方法
    public void say(String message){
        if(message.contains("打開")){
            on();
        }else if(message.contains("關(guān)閉")){
            off();
        }else {
            System.out.println("我還聽不懂你說的!!!");
        }
    }

    //一鍵打開功能
    private void on(){
        light.on();
        tv.on();
        airCondition.on();
    }

    //一鍵關(guān)閉功能
    private void off(){
        light.off();
        tv.off();
        airCondition.off();
    }
}

測試類

package com.example.deesign_patterns.facade;

//測試類
public class Client {

    public static void main(String[] args) {
        //創(chuàng)建智能音箱對象
        SmartAppliancesFacade facade=new SmartAppliancesFacade();
        //控制家電
        facade.say("打開家電");
        System.out.println("===============");
        facade.say("關(guān)閉家電");
    }
}

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

好處:

  • 降低了子系統(tǒng)與客戶端之間的耦合度,使得子系統(tǒng)的變化不會影響調(diào)用它的客戶類。
  • 對客戶屏蔽了子系統(tǒng)組件,減少了客戶處理的對象數(shù)目,并使得子系統(tǒng)使用起來更加容易。

缺點(diǎn):
不符合開閉原則,修改起來很麻煩。文章來源地址http://www.zghlxwxcb.cn/news/detail-501164.html

到了這里,關(guān)于設(shè)計模式之外觀模式筆記的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 設(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í)現(xiàn)原理:定義了一個高層接口,向現(xiàn)有的系統(tǒng)中的一組接口提供一致的界面 目的:降低訪問復(fù)雜系統(tǒng)的內(nèi)部子系統(tǒng)時的復(fù)雜度,簡化客戶端之間的接口,使系統(tǒng)更加容易使用 何時使用:簡化復(fù)雜系統(tǒng),方便操作 解決方法:對客戶端和系統(tǒng)解耦,讓外觀類

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

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

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

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

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

    2024年02月07日
    瀏覽(31)
  • Java設(shè)計模式-外觀模式

    在軟件開發(fā)過程中,經(jīng)常會遇到復(fù)雜的系統(tǒng)和龐大的類庫。這些系統(tǒng)往往包含了大量的類和子系統(tǒng),給開發(fā)人員帶來了挑戰(zhàn)。為了簡化接口設(shè)計和提高系統(tǒng)的可用性,設(shè)計模式提供了一種名為外觀模式的解決方案。 外觀模式是一種結(jié)構(gòu)型設(shè)計模式,旨在為復(fù)雜系統(tǒng)提供一個簡

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

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

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

    2024年02月22日
    瀏覽(19)
  • 設(shè)計模式之代理模式與外觀模式

    設(shè)計模式之代理模式與外觀模式

    目錄 代理模式 簡介 優(yōu)缺點(diǎn) 角色職責(zé) 實(shí)現(xiàn) 運(yùn)用場景 外觀模式 簡介 角色職責(zé) 優(yōu)缺點(diǎn) 實(shí)現(xiàn) 使用場景 由于某些原因需要給某對象提供一個代理以控制對該對象的訪問。這時,訪問對象不適合或者不能直接引用目標(biāo)對象,代理對象作為訪問對象和目標(biāo)對象之間的中介 優(yōu)點(diǎn): ?

    2024年02月10日
    瀏覽(26)
  • 設(shè)計模式結(jié)構(gòu)型——外觀模式

    設(shè)計模式結(jié)構(gòu)型——外觀模式

    目錄 什么是外觀模式 外觀模式的實(shí)現(xiàn) 外觀模式角色 外觀模式舉例 外觀模式類圖 外觀模式代碼實(shí)現(xiàn) 外觀模式的特點(diǎn) 優(yōu)點(diǎn) 缺點(diǎn) 注意事項(xiàng) 應(yīng)用場景 總結(jié) ????????外觀模式(Facade Pattern):又叫作門面模式,歸屬于結(jié)構(gòu)型模式。外觀模式定義了提供了定義了一個統(tǒng)一的高層

    2024年02月16日
    瀏覽(25)
  • C++ 設(shè)計模式之外觀模式

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

    【聲明】本題目來源于卡碼網(wǎng)(題目頁面 (kamacoder.com)) 【提示:如果不想看文字介紹,可以直接跳轉(zhuǎn)到C++編碼部分】 【簡介】什么是外觀模式 ????????外觀模式 Facade Pattern , 也被稱為“??模式”,是?種 結(jié)構(gòu)型設(shè)計模式 ,外觀模式定義了?個?層接?,這個接?使得

    2024年01月17日
    瀏覽(24)
  • JavaScript 設(shè)計模式之外觀模式

    我們?yōu)樯兑褂猛庥^模式呢,其實(shí)我們在使用各種 js 庫的時候常常會看到很多的外觀者模式,也正是這些庫的大量使用,所以使得兼容性更廣泛,通過外觀者模式來封裝多個功能,簡化底層操作方法 在我們寫方法時,通常會傳遞參數(shù)的形式來傳遞數(shù)據(jù) 但是我們更應(yīng)該這樣來

    2024年02月20日
    瀏覽(24)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包