- SRP 单一职责原则
- 一个类应该只能有一个职责
- 优点:
- 降低类的复杂性
- 提高类的可读性
- 提高代码的可维护性和复用性
- 降低因变更引起的风险
- LSP 里氏替换原则
- 继承的优点
- 代码共享,减少创建类的工作量
- 提高代码的可重用性
- 提高代码的可扩展性
- 提高产品或项目的开放性
- 继承的缺点
- 继承是入侵式的:只要继承,就必须拥有父类所有的属性和方法
- 降低代码的灵活性
- 增强了耦合性
- 为了增强继承的优点,引入了里氏替换原则
- 定义:程序中的父类都能替换成子类,而且对程序没有任何影响结果
- 含义
- 子类必须完全实现父类的方法
- 子类可以有自己的个性
- 覆盖或实现方法时父类的输入参数类型可以被泛化
- 覆盖或实现方法时父类的输出参数类型可以被具体化
- 相关模式
- 策略模式
- 组合模式
- 代理模式
- 继承的优点
- DIP 依赖倒置原则
- 含义
- 高层模块不能依赖于低层模块,都应该依赖于抽象。注意:低层模块应该依赖于抽象,而不是高层模块
- 抽象不能依赖于细节
- 细节应该依赖于抽象
- 遵循原则
- 每个类最好都要有接口或抽象类。或者两者都有
- 变量的表面类型尽量是接口或抽象类
- 任何类都不应该从具体的类中派生
- 尽量不要Override基类的方法
- 结合里氏替换原则
- 含义
- ISP 接口隔离原则
- 接口分为两种:实例接口、类接口
- 定义:
-
客户端不应该依赖于它不需要的接口
-
类间的依赖关系应该建立
-
- 具体做法:
- 一个类对另外一个类的依赖性应该建立在最小的接口上。如果有多个类同时使用一个类,那么应该给这几个类分别设计不同的接口
- LoD 迪的米特法则(也叫 LKP 最小知识原则)
- 含义
- 只和你直接的朋友通信
- 不和陌生人通信
- 每个软件单位应该保持和别的单位最小的了解
- 具体做法
- 如果A和B有直接联系,B和C有直接联系,如果A想要调用C,可以通过B间接调用
- 含义
- 开闭原则
- 对扩展开放,对修改闭合
- 开闭原则是最基本的原则
- 优点
- 提高复用性
- 提高可维护性
- 提高灵活性
- 易于测试:因为只是扩展了功能,只要测试扩展部分的功能就行了
设计模式中使用了哪些原则?【读书笔记】设计模式原则
最新推荐文章于 2024-02-27 10:44:10 发布