做人要有原则,设计模式也有原则?
所谓设计模式的原则就是保证设计模式的目的和功能性。

设计模式要达到的目的

  1. 代码的可复用性: 减少重复工作量
  2. 代码的可读性: 降低团队协作内耗
  3. 代码的可扩展性:面对后续需求变更改动量小
  4. 代码的可靠性:系统运行的稳定性和后续需求变更迭代后的健壮性
  5. 应用程序的高内聚、低耦合: 应用自身是高内聚的,多模块之间是低耦合的,能更好的满足以上5点要求。

    设计模式的六大原则

    1、开闭原则(Open Close Principle):对扩展开放对修改关闭
    2、里氏代换原则(Liskov Substitution Principle):父类出现的地方,子类也可出现
    3、依赖倒转原则(Dependence Inversion Principle):依赖抽象而不依赖具体
    4、接口隔离原则(Interface Segregation Principle):多个隔离的接口,比使用单个接口要好
    5、迪米特法则(最少知道原则)(Demeter Principle):最少知道原则。一个实体应当尽量少的与其他实体之间发生相互作用
    6、合成复用原则(Composite Reuse Principle):尽量使用合成/聚合的方式,而不是使用继承。

这边不过多咬文嚼字,简单总结为大白话
总结如下:

设计原则 一句话归纳 目的
开闭原则 对扩展开放,对修改关闭 降低维护带来的新风险
依赖倒置原则 高层不应该依赖低层,要面向接口编程 更利于代码结构的升级扩展
单一职责原则 一个类只干一件事,实现类要单一 便于理解,提高代码的可读性
接口隔离原则 一个接口只干一件事,接口要精简单一 功能解耦,高聚合、低耦合
迪米特法则(最少知道原则) 不该知道的不要知道,一个类应该保持对其它对象最少的了解,降低耦合度 只和朋友交流,不和陌生人说话,减少代码臃肿
里氏替换原则 不要破坏继承体系,子类重写方法功能发生改变,不应该影响父类方法的含义 防止继承泛滥
合成复用原则 尽量使用组合或者聚合关系实现代码复用,少使用继承 降低代码耦合