Design Pattern 設計模式系列文開張

Design Pattern 設計模式系列文開張

踏入軟體開發的世界後,一定早晚都會接觸到的 Design Pattern 總算來了。
接下來的系列文章除了跟大家介紹設計模式是什麼之外也會說明其中的 23 種不同的模式究竟有哪些?
那就一起來看看吧!


什麼是設計模式?

Design Pattern 設計模式是在軟體開發中的一種針對常見的開發問題所提出的一套解決方案。

設計模式的基礎概念

根據上面簡易的描述,我們可以知道設計模式的出現和存在除了要解決那些會重複出現的軟體開發問題有一個可以遵照的解決辦法之外,其實這些設計原則還能夠讓我們開發的專案或是產品更有規劃也可以讓之後要開發的新功能可以遵照一定的設計模式與專案做結合。

所以我們在網路上查到的很多資料也都有特別點出設計模式為什麼會在軟體開發界被廣泛地使用,原因就是在這些上面。因此你也有可能曾經在開發的時候就使用過相關的設計模式的規則,只是你自己不知道原來那也是設計模式的範疇中喔!

對設計模式的個人見解

目前的工程師職涯經驗中,通常公司或是產品到達一定規模的時候就會接觸到設計模式的概念了。原因也很簡單,因為越大規模的產品隨之而來的就是開發團隊人數的成長,因此在人數較多的開發團隊中使用有清楚規範撰寫風格和功能的設計模式對團隊已經公司來說絕對是很加分的。

另外想特別補充,我個人覺得在有導入設計模式的產品中會相對比較少出現不必要的程式碼或是重複的 function 和 功能,這個對專案的維護真的有很大的幫助!還有針對剛接觸公司產品的開發人員(不管是新進人員或是其他部門的開發同仁)都能更快的進入開發中的準備,因為設計模式在各地都是通用的,因此只要遵照這樣的模式即便產品還尚未熟悉,但是還是可以從中找出一些這個產品或是專案的撰寫習慣和規範。


接下來要介紹的設計模式有哪些?

接下來會陸續來介紹 GoF ( Gang of Four ) 所提出的 23 種設計模式,以下先跟大家大致說明有哪 23 個設計模式?

Creational Patterns

Creational 的類別就是處理關於創造一個新物件時,可以參考的相關設計模式。總共有以下 5 種:

  • Singleton
  • Factory
  • Abstract Factory
  • Builder
  • Prototype

Structural Patterns

Structural 這大類主要是處理 class 相關的結構問題,例如:繼承 Inheritance 和組合 Composition

  • Adapter
  • Composite
  • Proxy
  • Flyweight
  • Facade
  • Bridge
  • Decorator

Behavioral Patterns

Behavioral 這個類別就會針對不同物件之間該怎麼溝通和共用,還有注重在怎麼降低功能或是物件之間的耦合以及針對專案未來開發的新功能的便利性和彈性等。

  • Template Method
  • Mediator
  • Chain of Responsibility
  • Observer
  • Strategy
  • Command
  • State
  • Visitor
  • Interpreter
  • Iterator
  • Memento

結語

今天先大概和大家簡述了設計模式 Design Pattern 究竟是什麼之外,也整理出接下來要向大家介紹的 23 種設計模式並分門別類列出來。
期待接下來能跟著大家一起站在前人的肩膀上來研究這些偉大的設計模式~
那我們下次見ʘ‿ʘ


參考資料

評論