iT邦幫忙

2022 iThome 鐵人賽

DAY 19
0
自我挑戰組

【從工程師升級成為資深工程師的那檔事】 系列 第 19

【從工程師升級成為資深工程師的那檔事Day 19】淺談結構型設計模式(總結)

  • 分享至 

  • xImage
  •  

可能有些人已經發現了,我們少講到組合模式(Composite Pattern)、享元模式(Flyweight Pattern)。

先來談談組合模式,個人覺得組合模式並不是一個解決問題的方法,更像是一種解決問題的前置步驟。
不知有沒有人曾經學過資料結構呢?
其實說白了組合模式就是一種樹狀結構(Tree),而樹狀結構要解決的問題很多都是資料相關的問題,
即便化成了物件,現在也很多套件(或是內建)都有幫處理這些資料搜尋甚至新增、修改的方法。
所以就不再特別贅述。

那我們再來看看享元模式,享元模式的功能是要減少物件(Object)的創建,提高物件的複用。
而享元模式主要是透過工廠模式來創建物件,而HashMap儲存建立過的物件。
再透過工廠幫忙判斷是否在HashMap中建立過,再決定是否創建。
所以嚴格說起來,享元模式比較像是工廠模式的一種延伸應用。

結構型設計模式

講完了結構型設計模式,
可以歸納出這類的設計模式主要處理的是,將系統分析訂定出來的架構轉變成程式結構的一種方式。
前面幾篇文章也有提到過,結構型設計模式主要是處理執行(RunTime)以前的問題
說到這個就不得不提到**軟體設計架構(architectural pattern) ** 這個觀念了。

軟體設計架構 Architectural Pattern

軟體設計架構就是一種表述系統需求分工的方式。
而在軟體設計架構中最耳熟能詳的應該就屬MVC架構了(這邊就以此為代表不列舉其他的架構)。
這架構簡單、好學、好理解(所以傳度也高),但他就好像沒有文字的語言
也許一開始大家都用得非常好,但是因為沒有明確定義實際的操作方法導致漸漸失傳。
甚至開始了各種門派(MVP、MVVM、VIPER...等),到了最後就像是學習方言一樣,
只能不斷的透過口傳來學習掌握這套技能。

結語

軟體設計架構就像是骨架奠定了系統的雛型,設計模式就像是肉體讓系統有一個完整的實體,
最後撰寫出來的程式就是驅動我們整套系統的神經。

在我們學習的過程中(職涯過程),應該要
程式撰寫開始、接著系統設計(設計模式)
一直到系統架構(軟體設計架構)
而最後在實際開發運用時會從 系統架構 -> 系統設計 -> 程式撰寫 這樣的步驟來完成整個專案。


上一篇
【從工程師升級成為資深工程師的那檔事Day 18】設計模式 - 代理模式
下一篇
【從工程師升級成為資深工程師的那檔事Day 20】設計模式 - 責任鏈模式
系列文
【從工程師升級成為資深工程師的那檔事】 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言