设计模式简介

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

一、设计模式原则

  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)可以与依赖倒换原则相结合,通过在调用方和被调用方之间增加一个抽象层,被调用方在遵循抽象层的前提下就可以自由变化,此时抽象层变成了调用方的朋友。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 创建型模式 工厂模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设...
    liuyang7519阅读 348评论 0 2
  • 设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软...
    Chars阅读 691评论 2 5
  • 设计模式的使用设计模式在软件开发中的两个主要用途。(1)开发人员的共同平台设计模式提供了一个标准的术语系统,且具体...
    可不期诺Cappuccino阅读 388评论 0 0
  • 他想她了,然后就给她打了电话。 电话通了 他:“喂~” 她:“喂,你好,哪位” 他:“是我,我......” 她:...
    凌一同学阅读 251评论 0 0
  • 过了个年,很多女人对丈夫更不满意了。为什么是过了个年之后呢?因为过年的时候发生了一些事情,比如喝酒,比如聚会。 最...
    小圆小方阅读 479评论 0 1