門面模式和調停者模式
門面模式,是指提供乙個統一的介面去訪問多個子系統的多個不同的介面,它為子系統中的一組介面提供乙個統一的高層介面。使得子系統更容易使用。
當需要提供給其他人功能時,實際**需要做很多調動,而這樣的工作又有很多類。而這每一類之間又存在細節的不同,如果實質編碼結構如下:
對於業務或者演算法進行實現後,軟體模組清晰,**結構如下圖所示
但是,在正常業務上現在存在呼叫的方式,如:
我們會發現軟體**在業務不斷擴充套件後會變成如下結構
而如下結構可以稱之為**腐爛,隨著業務的增長,**的可讀性不斷下降,說的不好聽一點就是**結構思想優秀,但是**質量很差,這就是部分公司**結構混亂的原因之一(沒有其他意思,我現在的乙個**歷經10年一開始不做重構公升級**就是這樣的,其中的乙個cs檔案只有乙個類,而這個類有8000行**)
而當我們擴充套件時可以使用門面模式進行管理是,其將會非常清晰:
門面模式的最傑出代表使用就是訊息中介軟體
調停者模式是軟體設計模式的一種,用於模組間解耦,通過避免物件互相顯式的指向對方從而降低耦合。
調停者模式相較門面模式的區別在於:
大家都是開發人員,在工作中能分為開發小組、需求產品組、測試小組。當需求組中有需求需要分配給開發人員,開發小組人員需要深入了解業務需求,開發完畢之後提交需求、需求提交測試,測試反饋開發小組時。
原始**結構如下:
看著複雜其實不複雜,其實可以轉變為這樣的:
當世界不發生變化的時候他就是和諧的,但是需求總會發生改變,從哲學上說世界上不變的東西只有變化,當上述需求發生變化時:
在此情況下等待一定時間之後我們可以看到如下結構,當結構足夠複雜是可能下圖還可以搶救一下,使其結構清晰
但是足夠複雜之後,神也救不了。那麼我們應該如何修改結構圖呢?[僅僅對於次案例]
其實大多數調停者模式的示意圖是如下,但是領域或者說需求業務需要結合實際情況,軟體設計和架構沒有銀彈,軟體設計需要借鑑設計模式但是還是需要融會貫通,結合實際具體問題具體分析。
結構型 設計模式 門面模式 Facaed
ps 在以下講述門面模式中,模仿的場景如下 我們需要辦理乙個業務,但是要完成這個業務,我們需要前往三個部門,a部門 b部門 c部門,這樣下來十分麻煩。所以我們建立乙個門面handlefacaed,在這門面中,我們聚合a b c,所以可以為辦理者一次性完成業務。其實這個模式類似於mvc中的控制層。和類...
設計模式 結構型模式 外觀模式 門面模式
1.定義 要求乙個子系統的內部與外部的通訊只能通過乙個統一的物件。此模式提供乙個高層介面,使子系統更易使用 3.理論基礎 封裝,有可能涉及多型 4.涉及角色 門面角色 外界通過該角色訪問子系統,該角色是子系統分友元角色,即該角色知道各個子系統對的職責以及功能。一般情況下該角色會將外界的請求委派到各個...
外觀模式 門面模式 結構型
設計模式主要有23種,大致可分為三類 建立型,機構行,行為型 具體如下 1,單例設計模式 2,工廠設計模式 3,建造者設計模式 4,原型設計模式 5,設計模式 6,橋接設計模式 7,裝飾設計模式 8,介面卡設計模式 9,外觀設計模式 10,享元設計模式 11,組合設計模式 12,模板設計模式 13,...