只是,它有提到在 MVC 中經常會使用這個模式來設計。看了下它的介紹,就真的是簡短到一個極致。
接著便拿起「參悟物件設計模式 - 使用 Delphi」一書,翻到了「協調者模式」一節。
……還是有點難理解,按本人羸弱的思考能力是這樣解讀的:
- Mediator 收集所有的元件,並且設計一套劇本。
- Colleague 做了什麼事都要回報給 Mediator。
使用 Interface 設計上是比 Abstract Class 要來得簡潔,要注意的地方大概是:
- protected 區域影響子類的使用
- 為了一致性會讓父類別重載時的 Private 屬性無法浮現,所以要另外繼承父類別來使用
整個依樣畫完葫蘆後,覺得協調者模式的好處是:
- 分工十分明確,物件間彼此都不知道對方的存在,物件重複利用的可能性大增。
壞處是:
- Mediator 的程式內容會非常的多,所有流程和物件通通擠在一個 function 裡,隨著專案日漸龐大,function 也會越來越難以維護,還有一堆可能交叉的流程等著釐清……
由於 UI 完全按照書上的範例設計,就不再放執行畫面了
Sample Code Download.
沒有留言:
張貼留言