设计模式简介

2019-03-11  本文已影响0人  代代代个码

设计模式指的是人们在工作中摸索出的规律和规则,即一个被记录的最佳实践或解决方案。

一、设计模式原则

  1. 开闭原则
      开闭原则,Open Closed Principle(OCP),指的是软件实体应当对扩展开放,对修改关闭。要求在不修改原有功能的基础上,添加新功能。达到高扩展度、高维护性的效果。
      实现开闭原则的精髓在于“抽象”,需要在繁杂的需求中找到不变的部分,对这些内容加以抽象,抽象为接口或者抽象类;对于变化的部分,我们可以进行单独的封装。
  2. 单一职责原则
      单一职责原则,Single Responsibility Principle(SRP),是指就一个类而言,应该只有一个引起它变化的原因。即按照职责分类来设计类,达到高内聚、低耦合的效果。
      实现单一职责原则,可以从两方面来入手:(1)防止相同类型的职责,分离到不同的类中,提高代码的可重用性;(2)同一个类无须编制多余的职责,即做事专一。
  3. 里氏替换原则
      里氏替换原则,Liskov Substitution Principle(LSP),完整意思是“若对每个类型S的对象o1,都存在一个类型T的对象o2,使得在所有针对o2编写的程序P中,用o1替换o2,程序P的行为功能不变,则S是T的子类型”,换句话说,子类必须能够完全代替它的父类。
      实现里氏替换原则,可以从两方面入手:(1)正确设计继承,所有积累的方法都要在子类中得以实现或重写,并且子类不能写出与业务功能实现无关的多余方法或实现;(2)设计最优的继承层次,当其他应用类调用业务功能类时,应该首先考虑调用基类而不是调用子类。
  4. 依赖倒换原则
      依赖倒换原则,Dependence Inversion Principle(DIP),指的是高层模块不依赖于低层模块,两者依赖于抽象,即细节依赖于抽象。这就要求我们针对接口编程,而不针对实现编程。
  5. 接口隔离原则
      接口隔离原则,Interface Segregation Principle(ISP),指的是定义接口的表达要准确,不要创建多余的方法。这点和单一职责原则有一定的关联和相似,目的也是达到高内聚、低耦合的效果。
      实现接口隔离原则,可以从三个角度考虑:(1)从业务逻辑角度考虑,把某类功能也设计成接口;(2)对客户程序进行有效区分,并对其对应的接口进行变化;(3)根据场合和调用者的情况,消除无关的方法,只提供同类型角色的接口。
  6. 迪米特原则
      迪米特原则,Law Of Demeter,又叫最少知识原则,Least Knowledge Principle(LKP),指的是一个对象应当对其他对象有尽可能少的了解,即类的设计要尽可能隐藏掉自己的内部数据以及实现细节。
      实现迪米特原则,主要目标是控制信息的加载,可以从以下角度入手:(1)创建低耦合的类层次关系;(2)每个类之间降低成员的访问程度,比如通过开放取值和赋值的方法让外界间接访问自己的属性;(3)尽量把类设计成不变的类,以方便功能的实现;(4)可以与依赖倒换原则相结合,通过在调用方和被调用方之间增加一个抽象层,被调用方在遵循抽象层的前提下就可以自由变化,此时抽象层变成了调用方的朋友。
上一篇下一篇

猜你喜欢

热点阅读