1. 程式人生 > >《設計模式》劉偉主編【第2、3章 面向物件設計原則、設計模式概述】

《設計模式》劉偉主編【第2、3章 面向物件設計原則、設計模式概述】

按照面向物件設計原則設計軟體,目標是提高軟體的可維護性和可複用性。而設計模式就是在工程實踐中總結出來的一套符合面向物件設計原則的軟體開發模式。

七大面向物件設計原則

設計原則名稱 設計原則簡介 備註
單一職責原則(Single Responsibility Principle, SRP) 類的職責單一 是實現高內聚、低耦合的指導方針
開閉原則(Open-Closed Principle,,OCP) 軟體實體對擴充套件是開放的,對修改是關閉的,即在不修改一個軟體實體的基礎上去擴充套件其功能 可複用設計的第一塊基石
里氏替換原則(Liskov Substitution Principle, LSP) 可接受基類物件的地方必然可接受子類物件 如果某方法屬於子類且父類中無相應宣告,那麼無法通過父類物件呼叫該方法。儘量把父類設計為抽象類或介面,讓子類去實現父類中宣告的方法
依賴倒轉原則(Dependency Inversion Principle,DIP) 針對介面(抽象層)程式設計,不要針對實現程式設計
介面隔離原則(Interface Segregation Principle,ISP) 一旦一個介面太大,就把它分割成小介面,使該介面的客戶端只知道與之相關的方法即可
合成複用原則(Composite Reuse Principle,CRP) 多使用組合、聚合關聯關係,少使用繼承關係
迪米特法則(Law of Demeter,LoD) 一個軟體實體對其他實體的引用越少越好,或者說如果兩個類不必彼此直接通訊,那麼這兩個類就不應當發生直接作用,而是通過引入一個第三者發生間接互動

GoF

《Design Patterns: Elements of Reusable Object-Oriented Software》(即後述《設計模式》一書),由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 合著(Addison-Wesley,1995)。這幾位作者常被稱為"四人組(Gang of Four)"。

GoF的這部經典著作描述了23種設計模式。

建立型模式 結構型模式 行為型模式
工廠方法模式、抽象工廠模式、建造者模式、原型模式、單例模式 介面卡模式、橋接模式、組合模式、裝飾模式、外觀模式、享元模式、代理模式 直譯器模式、模板方法模式、職責鏈模式、命令模式、迭代器模式、中介者模式、備忘錄模式、觀察者模式、狀態模式、策略模式、訪問者模式