设计模式概念
Design pattern is a proved methodology & solution to a problem in a context of some software system/application. (已证实的方法或解法)
More specifically, play a role of a standard solution to a recurring problem (重现问题的标准解法)
Pattern is the knowledge of reuse of generated knowledge
创建型 Creational,结构型 Structuaral ,行为型 Behavioral
- 创建型: 用于创建一个对象
- 结构型: 用于将多个对象组
- 织到高效的一个当中
- 行为型: 用于描述不同类和对象之间互相互动和分配职责
类式 对象式
- 类式用于管理类和子类的关系
- 对象式用于管理对象的关系
设计模式原则
单一职责原则(Single Responsibility Principle)
SRP
每个函数(类)只做一件事情, 同时职责完全被该函数(类)管理
- 如果功能比较复杂,可以拆成多个函数,同时让每个部分保持独立
- 好处:修改一个功能时,不会影响到其他功能
开闭原则(OpenClosed Principle)
OCP 对扩展开放,对修改关闭
- 在实现新功能时,扩展新代码,而不是修改已有代码
- 好处:不会影响已有功能
里式代换原则(Liskov Substitution Principle)
Function that use pointers or references to base classes must be able to use objects of derived classes without knowing it
LSP 所有引用基类的地方必须能透明地使用其子类的对象
依赖倒转原则(Dependence Inversion Principle)
Program to an interface, not an implementation
DIP
高层模块不应该依赖低层模块,他们都应该依赖抽象。抽象不应该依赖细节,细节应该依赖于抽象