面向对象的设计模式有七大基本原则:
- 开闭原则(
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)
编写软件过程中,程序员面临着来自 耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性 等多方面的挑战,设计模式是为了让程序(软件),具有更好:
- 代码重用性 (即:相同功能的代码,不用多次编写)
- 可读性 (即:编程规范性, 便于其他程序员的阅读和理解)
- 可扩展性 (即:当需要增加新的功能时,非常的方便,称为可维护)
- 可靠性 (即:当我们增加新的功能后,对原来的功能没有影响)
- 使程序呈现高内聚,低耦合的特性
