国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Java設計模式之(九)——門面模式

不知名網友 / 2544人閱讀

摘要:門面模式提供一個高層次的接口,使得子系統更易于使用。適配器模式和門面模式區別適配器模式和門面模式區別適配器模式主要做接口轉換,解決的是原接口和目標接口不匹配的問題。

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):也叫外觀模式,要求一個子系統的外部與其內部的通信必須通過一個統一的對象進行。 門面模式提供一個高層次的接口,使得子系統更易于使用。

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

2、門面模式定義

image-20210911234615889

①、Facade 門面角色

此角色知曉子系統的所有功能和責任,客戶端可以調用這個角色的方法,會將所有從客戶端發來的請求委派到相應的子系統去, 也就說該角色沒有實際的業務邏輯, 只是一個委托類。

②、Subsystem 子系統角色

可以同時有一個或者多個子系統。 每一個子系統都不是一個多帶帶的類, 而是一個類的集合。 子系統并不知道門面的存在。 對于子系統而言, 門面僅僅是另外一個客戶端而已。

3、門面模式通用代碼實現

/** * 子系統A */public class ClassA {    public void doA(){        System.out.println("子系統A方法");    }}
/** * 子系統B */public class ClassB {    public void doB(){        System.out.println("子系統B方法");    }}
/** * 子系統C */public class ClassC {    public void doC(){        System.out.println("子系統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();    }}

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

4、門面模式優點

①、減少系統的相互依賴

如果我們不使用門面模式, 外界訪問直接深入到子系統內部, 相互之間是一種強耦合關系, 你死我就死, 你活我才能活, 這樣的強依賴是系統設計所不能接受的, 門面模式的出現就很好地解決了該問題, 所有的依賴都是對門面對象的依賴, 與子系統無關。

②、提高安全性

想讓你訪問子系統的哪些業務就開通哪些邏輯, 不在門面上開通的方法, 你休想訪問到。

5、門面模式應用場景

①、解決易用性問題

門面模式可以用來封裝系統的底層實現,隱藏系統的復雜性,提供一組更加簡單易用、更高層的接口。

②、解決性能問題

通過將多個接口調用替換為一個門面接口調用,減少網絡通信成本,提高客戶端的響應速度。

③、解決分布式事務問題

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

6、適配器模式和門面模式區別

適配器模式:主要做接口轉換,解決的是原接口和目標接口不匹配的問題。
門面模式:主要做接口整合,解決的是多接口調用帶來的問題。

作者:IT可樂

資源:微信搜【IT可樂】關注我,回復 【電子書】有我特別篩選的免費電子書。
本文版權歸作者所有,歡迎轉載,但未經作者同意不能轉載,否則保留追究法律責任的權利。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/125376.html

相關文章

  • 設計模式結構型

    摘要:適配器模式不應在設計階段考慮,它是為了解決已經上線的問題的存在。組合模式將對象組合成樹形結構以表示部分整體的層次結構,使得用戶對單個對象和組合對象的使用具有一致性。 代理模式 代理模式之前已經講過,附上鏈接代理模式 裝飾者模式 裝飾者模式定義:動態地給一個對象添加一些額外的職責。就增加功能來說,裝飾模式相比生成子類更為靈活。 裝飾模式博主在第一次學習是懵逼的,是因為代理模式中代理對象和...

    Muninn 評論0 收藏0
  • 設計模式門面模式

    摘要:定義與類型定義又叫門面模式,提供了一個統一的接口,用來訪問子系統中的一群接口外觀模式定義了一個高層接口,讓子系統更容易使用類型結構型類圖門面模式是對系統復雜的關系處理做了一個封裝,對外提供一個簡單的接口,成員介紹子系統被門面模式封裝的子系統 0x01.定義與類型 定義:又叫門面模式,提供了一個統一的接口,用來訪問子系統中的一群接口 外觀模式定義了一個高層接口,讓子系統更容易使用 類型...

    Chiclaim 評論0 收藏0
  • Java設計模式綜合運用(門面+模版方法+責任鏈+策略)

    摘要:此案例中,門面類為,然后各個門面方法的參數均為抽象類,通過決定調用中的哪個子類。抽象類持有類的對象,并且實現累的一個接口是為了容器啟動完成的時候自動把相應的校驗器加入到校驗器鏈中。 引言:很久沒有更新了,主要是工作忙。最近,工作中一個子系統升級,把之前不易擴展的缺點給改進了一下,主要是運用了幾個設計模式進行稍微改造了一下。本文也同步發布至簡書,地址: https://www.jians...

    劉東 評論0 收藏0
  • php設計模式

    摘要:我們今天也來做一個萬能遙控器設計模式適配器模式將一個類的接口轉換成客戶希望的另外一個接口。今天要介紹的仍然是創建型設計模式的一種建造者模式。設計模式的理論知識固然重要,但 計算機程序的思維邏輯 (54) - 剖析 Collections - 設計模式 上節我們提到,類 Collections 中大概有兩類功能,第一類是對容器接口對象進行操作,第二類是返回一個容器接口對象,上節我們介紹了...

    Dionysus_go 評論0 收藏0
  • php設計模式

    摘要:我們今天也來做一個萬能遙控器設計模式適配器模式將一個類的接口轉換成客戶希望的另外一個接口。今天要介紹的仍然是創建型設計模式的一種建造者模式。設計模式的理論知識固然重要,但 計算機程序的思維邏輯 (54) - 剖析 Collections - 設計模式 上節我們提到,類 Collections 中大概有兩類功能,第一類是對容器接口對象進行操作,第二類是返回一個容器接口對象,上節我們介紹了...

    vspiders 評論0 收藏0

發表評論

0條評論

不知名網友

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<