設計原則名稱 |
設計原則簡介 |
重要性 |
單一職責原則
(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) |
一個軟件實體對其他實體的引用越少越好,或者說如果兩個類
不必彼此直接通信,那么這兩個類就不應當發生直接的相互作
用,而是通過引入一個第三者發生間接交互 |
★★★☆☆ |