设计模式(一)---设计原则

设计模式(一)- - - 六大设计原则

一. 单一职责原则

  1. 解释:一个类,应当只有一个引起它变化的原因,即一个类只有一个职责。
  2. 优点:
    • 降低类的复杂性
    • 提高类的可读性
    • 提高代码的可维护性和复用性
    • 降低因变更引起的风险

二. 里式替换原则

  1. 解释:所有引用父类的地方必须能透明的使用其子类对象。即,只要父类出现的地方子类就可以出现,而且替换为子类也不会产生任何错误和异常。但反过来则不可以,有子类出现的地方,父类未必就能适应。

  2. 优点:

    • 代码共享,减少创建类的工作量,每个子类都拥有父类的方法和属性
    • 提高代码的可重用性
    • 提高代码的可扩展性
    • 提高产品或项目的开放性
  3. 里式替换原则为良好的继承定义了一个规范,它包含4层含义:

    • 子类必须完全实现父类的方法
    • 子类可以有自己的个性
    • 覆盖或实现父类的方法时,输入参数(入参)可以被放大
    • 覆盖或实现父类的方法时,输出结果(返回值)可以被放小
  4. 按照里式替换原则,当多个类之间存在继承关系时,通常应该使用父类或接口来指向子类的对象(除非需要使用子类特有的方法),这更有利于系统的可扩展性(java的动态绑定)。

三. 依赖倒置原则

  1. 解释:高层模块不应该依赖底层模块,两者都依赖抽象;抽象不依赖细节,细节应该依赖抽象。
  2. 优点:
    • 模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生
    • 接口或抽象类不依赖于实现类
    • 实现类依赖于接口或抽象类
  3. 依赖倒置原则更加精确的定义就是面向接口编程–OOD(object-oriented design)。本质就是,通过抽象(接口或者抽象类)使各个类或模块的实现彼此独立互不影响,实现模块间松耦合。
  4. 结合里式替换原则使用。里式替换原则支出父类出现的地方子类就可以出现,结合依赖倒置原则可以得出一个通俗的规则:接口负责定义抽象方法,并且申明与其他对象的依赖关系,抽象类负责公共构造部分的实现,实现类准确的实现业务逻辑,同时在适当的时候对父类进行细化。

四. 接口隔离原则

  1. 解释:类间的依赖关系应该建立在最小的接口上。
  2. 具体含义:
    • 一个类对另外一个类的依赖性应当是建立在最小的接口上的
    • 一个接口代表一个角色,不应当将不同的角色都交给一个接口
    • 不应该强迫客户依赖于他们不用的方法

五. 迪米特法则

  1. 解释:又叫最少知识原则,意思就是一个对象应当对其他对象竟可能少的了解。
  2. 按照迪米特法则,如果两个类不必彼此直接通信,那么这两个类不应该发生直接的相互作用;如果一个类需要调用另一个类的某一个方法,可以通过第三者转发这个调用。

六. 开闭原则

  1. 解释:一个软件应当对外扩展开放,对修改关闭。
  2. 这个原则说的是,在设计一个模块的时候,应当是这个模块可以在不背修改的前提下呗扩展,及应当可以在不必修改源代码的情况下改变这个模块的行为。
  3. 开闭原则解决问题的关键在于抽象化,把系统所有可能的行为抽象成一个抽象底层,这个抽象底层规定,所有的具体实现必须提供的方法的特征,给系统定义一个抽象的设计,这个设计允许所有无穷尽的行为在实现层被实现。
发布了151 篇原创文章 · 获赞 104 · 访问量 27万+

猜你喜欢

转载自blog.csdn.net/qq_35923749/article/details/88090906