代码改变世界

设计模式概述

2019-03-12 09:50  剑动情缥缈  阅读(197)  评论(0编辑  收藏  举报

一、三大类型与23种模式

  

  

  

二、六大原则

1.开闭原则(Open Close Principle)

  • 开闭原则的意思是:对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。
  • 需要使用接口和抽象类。

2.里氏代换原则(Liskov Substitution Principle):类继承体系设计时,需要考虑父类方法设计

  里氏代换原则指程序中父类对象出现的地方,都可以用子类对象替换,如fun(Shape s),可以传递Circle、Square等对象,功能不受影响。包含如下四层含义:

  • 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。
  • 子类中可以增加自己特有的方法。
  • 当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。
  • 当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。

3.依赖倒转原则(Dependence Inversion Principle)

  • 针对接口编程,不要针对实现编程(依赖于抽象而不依赖于具体)。

4.接口隔离原则(Interface Segregation Principle)

  • 使用多个隔离的接口,比使用单个接口要好。它还有另外一个意思是:降低类之间的耦合度。由此可见,其实设计模式就是从大型软件架构出发、便于升级和维护的软件设计思想,它强调降低依赖,降低耦合。

5.迪米特法则,又称最少知道原则(Demeter Principle)

  • 一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立。

6.合成复用原则(Composite Reuse Principle)

  • 尽量使用合成/聚合的方式,而不是使用继承。

 

参考:

  里氏替代:https://www.kancloud.cn/digest/xing-designpattern/143719