[IT] Design Patterns
設計模式 Design Pattern 什麼是設計模式? 設計模式是指在軟體設計中通常出現的問題的典型解決方案。它們就像是預先製作好的藍圖,您可以根據自己程式碼中出現的重複設計問題來進行自定義。 設計模式不是一個特定的程式碼,而是一個解決特定問題的一般概念。您可以按照模式的細節來實現適合自己程式的解決方案。值得注意的是,設計模式常與演算法混淆,因為這兩個概念都描述了解決某些已知問題的典型解決方案。模式是一個更高層次的解決方案描述。 模式通常包括模式意圖、動機、結構、程式碼示例等幾個方面,以便人們在多種情況下可以複製它們。模式目錄還列出了其他有用的細節,例如模式的適用性、實施步驟和與其他模式的關係。 誰發明了設計模式? 設計模式不是晦澀難懂、高深複雜的概念,相反地,它們是物件導向設計中解決常見問題的典型解決方案。當一個解決方案在不同的項目中反復出現,某人最終會給它命名並詳細描述解決方案。這基本上是模式的發現方式。 模式的概念最初是由Christopher Alexander在《模式語言:城鎮、建築、建設》中描述的。這本書描述了一種用於設計城市環境的“語言”。這種語言的單位是模式。它們可以描述窗戶應該有多高,建築物應該有多少層,社區中綠地的大小應該是多少等等。+ 這個想法被四位作者Erch Gamma、John Vlissides、Ralph Johnson和Richard Helm接受。在1994年,他們出版了《Design Patterns: Elements of + Reusable Object-Oriented Software》一書,將設計模式的概念應用於編程中。該書介紹了23個解決物件導向設計中各種問題的模式,並迅速成為暢銷書。由於書名過長,人們開始稱之為“四人幫的書(Gang of Four, GoF)”。 此後,發現了許多其他物件導向模式。模式方法在其他編程領域也變得非常流行,因此現在還存在許多與物件導向設計無關的模式。 為什麼要學習設計模式? 設計模式是解決軟體設計中常見問題的一套經過驗證的解決方案工具包。即使從未遇到這些問題,了解模式仍然有用,因為它可以使用物件導向設計原則解決各種問題。 設計模式定義了一個共通的語言,使團隊之間可以使用它更有效地進行溝通。 設計模式的分類 設計模式可以根據其複雜性、細節程度和應用於整個系統的規模進行分類。它們有點像道路建設的類比:通過安裝交通信號燈或建造整個多層立交橋和地下通道來使十字路口更安全。 最基本和低層次的模式通常被稱為 “idioms”。它們通常僅適用於單一程式語言。 最通用和高層次的模式是架構模式(architectural patterns)。開發人員可以在幾乎任何語言中實現這些模式。與其他模式不同,它們可用於設計整個應用程序的架構。 此外,所有模式都可以通過其意圖或目的進行分類。本文將涵蓋三個主要模式: 創建型模式(creational):提供了增加彈性和重複使用現有代碼的物件創建機制。 結構型模式(structural):解釋如何將物件和類組合成更大的結構,同時保持這些結構的靈活性和效率。 行為型模式(behavioral):負責處理物件之間的有效溝通和職責分配。 SOLID 原則 在進入本文之前,來認識一下 SOLID 原則:(詳細的內容可以參考YC的部落格) S = Single-responsibility principle (SRP) = 單一職責原則 O = Open–closed principle (OCP) = 開放封閉原則 L = Liskov substitution principle (LSP) = 里氏替換原則 補充:jyt0532 I = Interface segregation principle (ISP) = 介面隔離原則 D = Dependency inversion principle (DIP) = 依賴反向原則 正文 Factory 簡介 ...