字體:小 中 大 | |
|
|
2021/03/29 08:25:15瀏覽431|回應0|推薦1 | |
自己接觸物件導向技術起源于1985 年發行的 Grady Booch "Object-Oriented Analysis and Design with Application"一書,連帶也推出 UML (Unified Model Languae) 語言,造成軟體 CAD/CAM 風潮,可惜並不成功。但是發行于 1994 年四人幫的 "Design Patterns: Elements of Reusable Object-Oriented Software" 卻是影響深遠。
在 2002 年 Robert Martin 推出 "Agile Software Development: Principles, Patterna, and Practices" 吹起敏捷式開發 (Agile Development) 的號角,其中最響亮的就是 SOLID 原則,每個 Programmer 都要深記在腦海中。 這次依據在 2006 年發行 Robert Martin 的 "Agile Principles, Patterns, and Practices in C#" 書中內容,重新整理 SOLID 原則,加深印象; 1. SRP (The Single-Responsibility Principle) : 單一職責原則 一個類別應該只有一個發生變化的原因。SRP 是最簡單的原則之一,也是最難正確應用的原則之一,需要強制要求職責分離。 2. OCP (The Open-Closed Principle) : 開放- 封閉原則 軟體實體(類別,模組,函式等) 應該是可擴張的,但不可修改。抽象(abstraction) 和多型(polymorphism)是重點,可以使用 Strategy 模式和 Template Method 模式。 3. LSP (Liskvo Principle) : Liskov 替換原則 子型態( subtype ) 必須能夠替換掉它們的基底型態( base type )。這是種特殊的繼承(inheritance) 關係,基於契約的設計(Design by Contract, DBC) 被提出來。 4. ISP (The Interface Segregation Principle) : 介面隔離原則 不應該強迫客戶程式依賴它們未使用的方法。這個原則是用來處理"胖"介面存在的缺點。分離客戶就是分離介面。 5. DIP (The Dependency-Inversion Principle) : 依賴反向原則 高層模組不應該依賴於(相依於)低層模組。兩者都應該依賴於抽象。抽象不應該依賴於細節,細節應該依賴於抽象。"結構化分析和設計"是高層模組依賴於低層模組,而物件導向正好相反。 |
|
( 創作|散文 ) |