設計模式(design pattern)是對軟體設計中普遍存在、或是會反覆出現的各種問題所提出的解決方案,因此它提供了在各種不同的情況下,要如何解決問題的一種方案。在物件導向的設計模式中,通常會用類別、物件來描述其中的關係和相互作用,且使用設計模式能夠讓模組間有穩定的依賴、也讓實體類別依賴於抽象類別,避免引起緊密耦合,以加強軟體設計之適應未來變化的能力。
關於耦合(Coupling)與內聚(Cohesion)
耦合與內聚,分別代表模組之間的依賴程度、以及模組本身內部的相關程度。詳細可閱讀之前的文章:
設計模式依據Gang of Four(GoF)的定義,大致可分為生成型、結構型與行為型模式:
生成型模式(Creational Patterns)
生成型模式會牽涉到將物件實例化、它會提供一個方法,讓Client能夠從實例化物件的過程分離出來。
結構型模式(Structural Patterns)
結構型模式可以讓小物件合併成為大型物件。
行為型模式(Behavioral Patterns)
行為型模式可以描述類別和物件如何互動,以及它們各自的責任。