设计模式原则
- 单一原则:
一个类或者一个方法只负责一项职责,尽量做到类的只有一个行为原因引起变化 - 里氏替换原则
子类可以扩展父类的功能,但不能改变原有父类的功能;(本质其实就是c++的多态)
实际项目中,每个子类对应不同的业务含义,使父类作为参数,传递不同的子类完成不同的业务逻辑。 - 依赖倒置原则
上层模块不应该依赖下层模块,两者应依赖其抽象类;抽象不应该依赖细节,细节应该依赖抽象;
就是我们描述一个顶层的抽象类,再用他派生出具体的功能实现 - 接口隔离原则
客户端不应该依赖它不需要的接口;
类之间依赖关系应该建立在最小的接口上;
大白话说就是让你封装的干净点 - 迪米特原则
一个对象应该对其他对象有最少的了解 - 开闭原则
大白话说就是加代码,别改代码
我自己的设计模式理解
- 可以保证可重用的代码、代码可靠性、更容易理解,俗称抄作业。一方面抄代码的时候好理解。一方面在扩展新功能新增代码的时候也可以基于设计模式让新增功能的思路变的清晰。这点在工厂模式等对象创建模式中尤为明显。
- 设计模式是一种思路,代码实现不固定,需要理解代码中数据的流动代表的模式中的意义。模式构建了框架,而在其中基于模式约定流动的数据体现设计模式的思想。
- 设计模式需要我们提前画好类图,基于类图实现,编程只是最后一步
- 类图我们需要关注什么是稳定的,什么的变化的,这要求我们基于需求和角色的定位去理解设计模式