美文网首页
设计模式几个原则

设计模式几个原则

作者: visionarywind | 来源:发表于2017-01-16 11:57 被阅读40次

    单一职责

    定义

    一个类只负责一项职责

    里氏替换

    定义

    引用基类的地方必须能透明地使用其子类的对象

    核心思想

    子类可以扩展父类的功能,但不能改变父类原有的功能

    • 1 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法
    • 2 子类中可以增加自己特有的方法
    • 3 当子类的方法重载父类的方法时,方法的形参要比父类方法的输入参数更宽松
    • 4 当子类的方法实现父类的抽象方法时,方法的返回值要比父类更严格

    依赖倒置

    • 定义
      高层模块不应该依赖底层模块,二者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象
    • 核心思想
      面向接口编程
    • 好处
      降低类之间的耦合性,提高系统的稳定性,降低修改程序造成的危险
    • 方法
      1 底层模块尽量有抽象类或接口
      2 变量的声明类型尽量是抽象类或接口
      3 使用继承时遵循里氏替换原则

    接口隔离

    定义

    客户端不应该依赖它不需要的接口,一个类对另一个类的依赖应建立在最小的接口上

    核心思想

    建议单一接口,避免接口庞大臃肿,尽量细化接口,接口中的方法尽量少
    通过分散定义多个接口,预防外来变更的扩散,提高系统的灵活性和可维护性

    与单一职责比较

    • 1 单一职责原则注重职责,接口隔离原则注重对接口依赖的隔离
    • 2 单一职责主要是约束类,其次是接口和方法,针对程序中的实现和细节;接口隔离原则主要约束接口,针对抽象,针对程序整体框架的构建

    注意

    1 接口尽量小且适度
    2 为依赖接口的类定制服务,只暴露给调用类需要的方法,隐藏不需要的方法
    3 提高内聚,减少对外交互

    迪米特法则

    定义

    一个对象应该对其他对象保持最小的了解

    核心思想

    尽量降低类与类之间的耦合,只与直接的朋友通信

    开闭原则

    定义

    一类软件实体如类、模块和函数应该对扩展开放,对修改关闭

    核心思想

    当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化
    用抽象构建框架,用实现扩展细节

    tips

    单一职责 : 类要职责单一
    里氏替换 : 不要破坏继承体系
    依赖倒置 : 面向接口编程
    接口隔离 : 接口设计要精简单一
    迪米特 : 降低耦合
    开闭原则 : 对扩展开放,对修改关闭

    相关文章

      网友评论

          本文标题:设计模式几个原则

          本文链接:https://www.haomeiwen.com/subject/pqdtmttx.html