做人要有原则,设计模式也有原则?
所谓设计模式的原则就是保证设计模式的目的和功能性。
设计模式要达到的目的
- 代码的可复用性: 减少重复工作量
- 代码的可读性: 降低团队协作内耗
- 代码的可扩展性:面对后续需求变更改动量小
- 代码的可靠性:系统运行的稳定性和后续需求变更迭代后的健壮性
- 应用程序的高内聚、低耦合: 应用自身是高内聚的,多模块之间是低耦合的,能更好的满足以上5点要求。
设计模式的六大原则
1、开闭原则(Open Close Principle):对扩展开放对修改关闭
2、里氏代换原则(Liskov Substitution Principle):父类出现的地方,子类也可出现
3、依赖倒转原则(Dependence Inversion Principle):依赖抽象而不依赖具体
4、接口隔离原则(Interface Segregation Principle):多个隔离的接口,比使用单个接口要好
5、迪米特法则(最少知道原则)(Demeter Principle):最少知道原则。一个实体应当尽量少的与其他实体之间发生相互作用
6、合成复用原则(Composite Reuse Principle):尽量使用合成/聚合的方式,而不是使用继承。
这边不过多咬文嚼字,简单总结为大白话
总结如下:
设计原则 | 一句话归纳 | 目的 |
---|---|---|
开闭原则 | 对扩展开放,对修改关闭 | 降低维护带来的新风险 |
依赖倒置原则 | 高层不应该依赖低层,要面向接口编程 | 更利于代码结构的升级扩展 |
单一职责原则 | 一个类只干一件事,实现类要单一 | 便于理解,提高代码的可读性 |
接口隔离原则 | 一个接口只干一件事,接口要精简单一 | 功能解耦,高聚合、低耦合 |
迪米特法则(最少知道原则) | 不该知道的不要知道,一个类应该保持对其它对象最少的了解,降低耦合度 | 只和朋友交流,不和陌生人说话,减少代码臃肿 |
里氏替换原则 | 不要破坏继承体系,子类重写方法功能发生改变,不应该影响父类方法的含义 | 防止继承泛滥 |
合成复用原则 | 尽量使用组合或者聚合关系实现代码复用,少使用继承 | 降低代码耦合 |