设计模式总结

设计模式1.png设计模式2.png

设计模式的原则

组件的生命周期,创建模式适用场景,结构模式适用场景,行为型模式适用场景

  • 面对接口编程而不是面对实现编程

  • 利于动态扩展, 多态

  • 多用对象的组合而少用继承

  • 继承最多父子两层

设计模式4.png

设计模式7大原则

开闭原则

  • 软件实体应对扩展开放对修改关闭

  • 合成复用原则,里氏替换原则相辅相成

里氏替换原则

  • 继承必须确保超类所拥有的属性行为在子类中仍然独立

  • 继承父类实现父类留给子类的钩子而不是重写覆盖父类属性行为

依赖倒置原则

  • 高层(接口类)模块不应该依赖底层(底层实现类)模块,
    两者(两个模块的底层实现类)都应该依赖其抽象(接口或抽象类),
    抽象(接口或抽象类)不应该依赖细节(底层实现)
    细节(底层实现)应该依赖抽象(接口或抽象类)

  • 面相接口编程,而不是面相实现编程

单一职责原则

  • 一个类应该有且只有一个引起变化的原因
    否则类应该被拆分

  • 每个类只负责自己的事情,而不是变成万能的

接口隔离原则

  • 一个类对另一个类的依赖应该建立在最小的接口上

  • 每个类建立自己的专用接口,而不是建立万能接口

迪米特法则

  • 最少知识原则

  • 只与你直接朋友交谈,不跟陌生人说话

  • 无需直接交流的两个类,如果需要交流,使用中间者
    过度使用迪米特法则会导致生成大量中间类,增加复杂性,使两个模块通信交流效率降低

合成复用原则

  • 又叫组合/聚合复用原则
    类A需要使用类B时,把B作为A中的一个属性,在方法中使用b.methodA()直接使用

  • 优先组合其次继承

文章作者: 刘同学
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 刘同学的小站
编码大杂烩 设计模式
喜欢就支持一下吧