[Day 06] 中介者模式,原型模式,橋梁模式


前言

不知不覺來到了第六天,明天就是寫作松的最後一天,最後一天並非結束,而是另一個起點的開始,之後也要繼續應用這樣的精神繼續學習技術,至於心得那些等明天再發表比較事宜。
好啦!趕快開始今天的主題,中介者模式,原型模式,橋梁模式。

中介者模式

利用一個中介物件來處理物件的交互以降低物件間的耦合
Mediator
像一個軟體部門中會有開發團隊(Dev Team)、設計團隊、行銷團隊、品管(QA),如果之間要互相溝通,這樣關係圖會變得非常亂,但如果加入一個中介者即專案管理(PM),就能使架構變成上圖一樣,並且可以降低開發團隊、設計團隊、行銷團隊、品管間的耦合。

原型模式

複製一個物件,不用再創造一個
當需要建立一個新物件與原本物件相似時,就可以直接複製原物件再進行修改,此時就要用到原型模式。

JAVA中原型模式的應用

在JAVA中只要一個物件宣告implements Clonable, Override clone方法後,就能複製一個物件。

JS中的原型繼承

在Java Script這種原型導向程式語言(POPL)中就算class這個關鍵字也只不過是個語法糖,只是一個函式物件。JavaScript中每個物件都連著其他原型地私有物件。原型物件也有自己的原型,原型物件就這樣一直鏈結到回傳null為止,而null沒有原型,即原型鏈的最後一個鏈結,透過原型鏈的方式進行繼承,又稱為原型繼承。

橋梁模式

將抽象介面與實作類別切開,使兩者不互相影響
一般信件有普通信及限時信,然而這兩種又分為非掛號與掛號,當我們要再加入雙掛號時,必須於普通信件和限時信件中分別加入雙掛號普通信與雙掛號限時信兩個子項,一次變動兩個維度,因此類別數量一不小心就會堆積如山,為避免這樣情形,將寄信動作抽出成為新的實體,信件變為到達時間+寄信兩種組合,這樣就是橋梁模式。

#寫作松 #設計模式







你可能感興趣的文章

Graph  [1] 七橋問題

Graph [1] 七橋問題

Day05 間接層 (indirection)

Day05 間接層 (indirection)

Apache web server 簡易測試

Apache web server 簡易測試






留言討論