面向对象的设计模式有七大基本原则:
- 开闭原则(
Open Closed Principle
,OCP
) - 单一职责原则(
Single Responsibility Principle
,SRP
) - 里氏代换原则(
Liskov Substitution Principle
,LSP
) - 依赖倒转原则(
Dependency Inversion Principle
,DIP
) - 接口隔离原则(
Interface Segregation Principle
,ISP
) - 合成/聚合复用原则(
Composite/Aggregate Reuse Principle
,CARP
) - 最少知识原则(
Least Knowledge Principle
,LKP
)或者迪米特法则(Law of Demeter
,LOD
)
编写软件过程中,程序员面临着来自 耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性 等多方面的挑战,设计模式是为了让程序(软件),具有更好:
- 代码重用性 (即:相同功能的代码,不用多次编写)
- 可读性 (即:编程规范性, 便于其他程序员的阅读和理解)
- 可扩展性 (即:当需要增加新的功能时,非常的方便,称为可维护)
- 可靠性 (即:当我们增加新的功能后,对原来的功能没有影响)
- 使程序呈现高内聚,低耦合的特性