網路城邦
上一篇 回創作列表 下一篇   字體:
SOLID 原則
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) : 依賴反向原則
高層模組不應該依賴於(相依於)低層模組。兩者都應該依賴於抽象。抽象不應該依賴於細節,細節應該依賴於抽象。"結構化分析和設計"是高層模組依賴於低層模組,而物件導向正好相反。
( 創作散文 )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=robertyjlai&aid=158375154