在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

門面模式通用代碼實(shí)現(xiàn)

科技綠洲 ? 來源:Java技術(shù)指北 ? 作者:Java技術(shù)指北 ? 2023-10-09 11:04 ? 次閱讀

1、什么是門面模式?

Provide a unified interface to a set of interfaces in a subsystem.Facade defines a higher-level interface that makes the subsystem easier to use.

門面模式(Facade Pattern):也叫外觀模式,要求一個(gè)子系統(tǒng)的外部與其內(nèi)部的通信必須通過一個(gè)統(tǒng)一的對(duì)象進(jìn)行。門面模式提供一個(gè)高層次的接口,使得子系統(tǒng)更易于使用。

說人話:假設(shè)有一個(gè)系統(tǒng) A,提供了 a、b、c、d 四個(gè)接口。系統(tǒng) B 完成某個(gè)業(yè)務(wù)功能,需要調(diào)用 A 系統(tǒng)的 a、b、d 接口。利用門面模式,我們提供一個(gè)包裹 a、b、d 接口調(diào)用的門面接口 x,給系統(tǒng) B 直接使用。至于為什么要這樣做,下文會(huì)告訴你。

2、門面模式定義

圖片

①、Facade 門面角色

此角色知曉子系統(tǒng)的所有功能和責(zé)任,客戶端可以調(diào)用這個(gè)角色的方法,會(huì)將所有從客戶端發(fā)來的請(qǐng)求委派到相應(yīng)的子系統(tǒng)去, 也就說該角色沒有實(shí)際的業(yè)務(wù)邏輯, 只是一個(gè)委托類。

②、Subsystem 子系統(tǒng)角色

可以同時(shí)有一個(gè)或者多個(gè)子系統(tǒng)。每一個(gè)子系統(tǒng)都不是一個(gè)單獨(dú)的類, 而是一個(gè)類的集合。子系統(tǒng)并不知道門面的存在。對(duì)于子系統(tǒng)而言, 門面僅僅是另外一個(gè)客戶端而已。

3、門面模式通用代碼實(shí)現(xiàn)

/**
 * 子系統(tǒng)A
 */
public class ClassA {
    public void doA(){
        System.out.println("子系統(tǒng)A方法");
    }
}
/**
 * 子系統(tǒng)B
 */
public class ClassB {
    public void doB(){
        System.out.println("子系統(tǒng)B方法");
    }
}
/**
 * 子系統(tǒng)C
 */
public class ClassC {
    public void doC(){
        System.out.println("子系統(tǒng)C方法");
    }
}
/**
 * 門面角色
 */
public class Facade {
    private ClassA a = new ClassA();
    private ClassB b = new ClassB();
    private ClassC c= new ClassC();

    // 提供給外部訪問的方法
    public void doSomething(){
        this.a.doA();
        this.b.doB();
        this.c.doC();
    }
}

看上去,沒有門面角色,我們自己去調(diào)用三個(gè)子系統(tǒng)的方法也是一樣,但是假如三個(gè)子系統(tǒng)之間有先后順序,還有來自不同網(wǎng)絡(luò)開銷,我們通過門面模式提供的方法,就屏蔽了這些差異,讓我們只需要調(diào)用門面角色提供給我們的方法即可。

4、門面模式優(yōu)點(diǎn)

①、減少系統(tǒng)的相互依賴

如果我們不使用門面模式, 外界訪問直接深入到子系統(tǒng)內(nèi)部, 相互之間是一種強(qiáng)耦合關(guān)系, 你死我就死, 你活我才能活, 這樣的強(qiáng)依賴是系統(tǒng)設(shè)計(jì)所不能接受的, 門面模式的出現(xiàn)就很好地解決了該問題, 所有的依賴都是對(duì)門面對(duì)象的依賴, 與子系統(tǒng)無關(guān)。

②、提高安全性

想讓你訪問子系統(tǒng)的哪些業(yè)務(wù)就開通哪些邏輯, 不在門面上開通的方法, 你休想訪問到。

5、門面模式應(yīng)用場景

①、解決易用性問題

門面模式可以用來封裝系統(tǒng)的底層實(shí)現(xiàn),隱藏系統(tǒng)的復(fù)雜性,提供一組更加簡單易用、更高層的接口。

②、解決性能問題

通過將多個(gè)接口調(diào)用替換為一個(gè)門面接口調(diào)用,減少網(wǎng)絡(luò)通信成本,提高客戶端的響應(yīng)速度。

③、解決分布式事務(wù)問題

需要調(diào)用多個(gè)子系統(tǒng)的接口方法,而這些接口要么都成功,要么都失敗,我們就可以利用門面模式包裹這些子系統(tǒng)接口,然后通過某種方法保證這些接口在一個(gè)事務(wù)中完成。

6、適配器模式和門面模式區(qū)別

適配器模式:主要做接口轉(zhuǎn)換,解決的是原接口和目標(biāo)接口不匹配的問題。門面模式:主要做接口整合,解決的是多接口調(diào)用帶來的問題。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8641

    瀏覽量

    151386
  • 通信
    +關(guān)注

    關(guān)注

    18

    文章

    6042

    瀏覽量

    136138
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4801

    瀏覽量

    68735
  • 客戶端
    +關(guān)注

    關(guān)注

    1

    文章

    290

    瀏覽量

    16711
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    實(shí)現(xiàn)TCP的C代碼封裝(含代碼

    實(shí)現(xiàn)TCP的C代碼封裝(含代碼
    的頭像 發(fā)表于 09-28 16:03 ?2573次閱讀
    <b class='flag-5'>實(shí)現(xiàn)</b>TCP的C<b class='flag-5'>代碼</b>封裝(含<b class='flag-5'>代碼</b>)

    用C語言實(shí)現(xiàn)狀態(tài)機(jī)設(shè)計(jì)模式

    狀態(tài)機(jī)模式是一種行為模式,在《設(shè)計(jì)模式》這本書中對(duì)其有詳細(xì)的描述,通過多態(tài)實(shí)現(xiàn)不同狀態(tài)的調(diào)轉(zhuǎn)行為的確是一種很好的方法,只可惜在嵌入式環(huán)境下,有時(shí)只能寫純C
    發(fā)表于 12-14 13:38 ?2836次閱讀

    利用Swap模式實(shí)現(xiàn)代碼回滾操作

    前面介紹了MCUboot的基礎(chǔ)知識(shí),您可通過上方鏈接回顧歷史文章,上次介紹了Swap模式,本次著重介紹利用Swap模式實(shí)現(xiàn)代碼回滾操作。在某些應(yīng)用場景中,可能新版本的Firmware存在bug而需要返回至上一次的固件。
    的頭像 發(fā)表于 06-19 15:45 ?1322次閱讀
    利用Swap<b class='flag-5'>模式</b><b class='flag-5'>實(shí)現(xiàn)代碼</b>回滾操作

    菜鳥福音|自動(dòng)代碼生成工具——Dev SDk通用平臺(tái)

    ,可以將我們生成好的 通用平臺(tái)版代碼 移植到符合條件的平臺(tái),從而實(shí)現(xiàn)機(jī)智云所提供的各種功能。本文將主要說明 通用平臺(tái)版 的移植。2.如何自動(dòng)生成"
    發(fā)表于 12-20 17:07

    通用網(wǎng)絡(luò)測控系統(tǒng)硬件設(shè)計(jì)如何實(shí)現(xiàn)

    )基本都不支持網(wǎng)絡(luò),也不能簡單升級(jí)具有網(wǎng)絡(luò)功能,且模式較為單一。因而,設(shè)計(jì)與實(shí)現(xiàn)了一種網(wǎng)絡(luò)化通用測控系統(tǒng)平臺(tái),以實(shí)現(xiàn)網(wǎng)絡(luò)化測控需求且具有一般平臺(tái)的
    發(fā)表于 11-08 07:45

    GPIO模式與GPIO配置代碼實(shí)現(xiàn)

    選擇三、GPIO配置代碼實(shí)現(xiàn)四、總工程實(shí)現(xiàn)一、GPIO模式STM32的 GPIO模式有以下幾種: GPIO_Mode_AIN --模擬輸入G
    發(fā)表于 08-24 07:20

    怎樣去實(shí)現(xiàn)STM32通用定時(shí)器的輸出比較模式

    怎樣去實(shí)現(xiàn)STM32通用定時(shí)器的輸出比較模式呢?其代碼該怎樣去實(shí)現(xiàn)呢?
    發(fā)表于 11-24 07:44

    SPI的幾種模式通用嗎?

    SPI的幾種模式通用
    發(fā)表于 10-10 08:15

    設(shè)計(jì)模式的原則及實(shí)現(xiàn)代碼的復(fù)用

    for modification。 意思:軟件模塊應(yīng)該對(duì)擴(kuò)展開放,對(duì)修改關(guān)閉。 舉例:在程序需要進(jìn)行新增功能的時(shí)候,不能去修改原有的代碼,而是新增代碼實(shí)現(xiàn)一個(gè)熱插拔的效果(熱插拔:靈活的去除或添加功能,不影響到原有的
    發(fā)表于 09-26 15:12 ?0次下載

    DSP系統(tǒng)通用設(shè)計(jì)模式及其實(shí)現(xiàn)   

    的軟硬件擴(kuò)展性。本文介紹的這種基于視頻處理的DSP系統(tǒng)的框架正是以傳統(tǒng)的數(shù)字信號(hào)處理方式為基礎(chǔ),以高效性和擴(kuò)展性為目標(biāo),并且能夠適應(yīng)大多數(shù)的器件而提出的在硬件上和在軟件上的解決方案。 可通用設(shè)計(jì)模式的思路 硬件結(jié)構(gòu) 傳統(tǒng)的數(shù)字信
    發(fā)表于 10-20 09:18 ?0次下載
    DSP系統(tǒng)<b class='flag-5'>通用</b>設(shè)計(jì)<b class='flag-5'>模式</b>及其<b class='flag-5'>實(shí)現(xiàn)</b>   

    代碼重用攻擊的通用模型及描述語言

    由于代碼重用攻擊的方式方法多樣,相應(yīng)的 gadget在結(jié)構(gòu)上也不盡相同,目前尚沒有一種通用的方法能夠用來描述多種代碼重用攻擊下的 gadget。結(jié)合幾種常見代碼重用攻擊的攻擊模型和圖靈
    發(fā)表于 05-29 16:29 ?5次下載

    大話設(shè)計(jì)模式代碼下載

    大話設(shè)計(jì)模式代碼下載
    發(fā)表于 07-22 10:50 ?6次下載

    STM32 低功耗睡眠模式(SLEEP)事件(EVENT)喚醒實(shí)現(xiàn)及優(yōu)化

    和STM32CUBEIDE環(huán)境介紹睡眠模式(SLEEP)事件喚醒的實(shí)現(xiàn)(HAL庫)。這里以管腳中斷為中斷源。SLEEP模式只是停止CPU和后續(xù)代碼執(zhí)行,喚醒(其實(shí)是continue的作
    發(fā)表于 12-31 19:08 ?36次下載
    STM32 低功耗睡眠<b class='flag-5'>模式</b>(SLEEP)事件(EVENT)喚醒<b class='flag-5'>實(shí)現(xiàn)</b>及優(yōu)化

    PWR休眠模式代碼示例

    進(jìn)入睡眠模式的功能。 /* 無限循環(huán) */ /* USER CODE BEGIN WHILE */while?( 1 ) { /* USER CODE END WHILE */ /* 用戶代碼開始 3 */ ? ? HAL_延遲(1000 ); ? ?HAL_Suspen
    發(fā)表于 03-23 14:32 ?604次閱讀
    PWR休眠<b class='flag-5'>模式</b>和<b class='flag-5'>代碼</b>示例

    設(shè)計(jì)模式結(jié)構(gòu)性:門面模式

    門面模式,是指提供一個(gè)統(tǒng)一的接口去訪問多個(gè)子系統(tǒng)的多個(gè)不同的接口,它為子系統(tǒng)中的一組接口提供一個(gè)統(tǒng)一的高層接口。
    的頭像 發(fā)表于 06-08 14:28 ?686次閱讀
    設(shè)計(jì)<b class='flag-5'>模式</b>結(jié)構(gòu)性:<b class='flag-5'>門面</b><b class='flag-5'>模式</b>
    主站蜘蛛池模板: 亚洲视频久久| 国产午夜精品理论片在线| dy888午夜秋霞影院不卡| 午夜视频免费看| 国产永久视频夜色资源网| 日本黄色免费电影| 特级毛片免费视频播放| a黄色网| 亚洲视频三区| 1024手机看片国产旧版你懂的 | 欧美性色xo影院69| 欧美另类高清xxxxx| 狠狠干.com| 米奇精品一区二区三区| 天天狠天天天天透在线| 在线观看深夜观看网站免费| 国产va在线观看| 国产三级日本三级在线播放| 寄宿日记免费看| 老司机深夜影院入口aaaa| 欧美色视频网| 欧美顶级xxxxbbbb| 欧美一级高清片在线| 久久亚洲国产欧洲精品一| 美女网站色视频| 久久精品成人免费网站| 美女流白浆网站| 成年人看的毛片| 最近免费| 一级黄色片在线| 亚洲黄色一区| 天天干夜夜草| 国产第一页在线观看| 49pao强力在线高清基地| 日韩欧美卡一卡二卡新区| 免费a网站| 最好免费高清视频观看韩国| 永久免费精品视频| 特黄特色的大片观看免费视频| 欧美影院一区| 国产在线观看色|