chiachan
chiachan
Published on 2020-08-09 / 690 Visits
0

设计模式简介

什么是设计模式?

设计模式:描述软件设计过程中某一类常见问题的一般性的解决方案
设计模式是用来表现内部组件是如何被组装的,以及每一个组件是如何通过相互关联来构成一个庞大系统的。

设计模式的目标

  • 正确性
  • 健壮性
  • 灵活性
  • 可重用性
  • 高效性

面向对象的三大特征

  • 继承性
  • 封装性
  • 多态性

设计模式六大原则

1.单一原则(Single Responsibility Principle)

  • 定义:一个类或者一个方法只负责一项职责,尽量做到类的只有一个行为原因引起变化;
  • 特点:高内聚、低耦合
    2.里氏替换原则(LSP liskov substitution principle)
  • 定义:子类可以扩展父类的功能,但不能改变原有父类的功能;(本质就是多态)
  • 特点:一个基类对象替换成它的子类对象,程序将不会产生任何错误和异常,反过来则不成立
    3.依赖倒置原则(dependence inversion principle)
  • 定义:抽象不应该依赖于细节,细节应当依赖于抽象,要针对接口编程,而不是针对实现编程。
  • 抽象就是接口或者抽象类,细节就是实现类
  • 上层模块不应该依赖下层模块,两者应依赖其抽象;
  • 抽象不应该依赖细节,细节应该依赖抽象;
  • 通俗点就是说变量或者传参数,尽量使用抽象类,或者接口;
  • 【接口负责定义public属性和方法,并且申明与其他对象依赖关系,抽象类负责公共构造部分的实现,实现类准确的实现业务逻辑】
    4.接口隔离(interface segregation principle)
  • 定义:使用多个专门的接口,而不使用单一的总接口,客户端不应该依赖它不需要的接口
  • 类之间依赖关系应该建立在最小的接口上
  • 简单理解:复杂的接口,根据业务拆分成多个简单接口
  • 【接口的设计粒度越小,系统越灵活,但是灵活的同时结构复杂性提高,开发难度也会变大,维护性降低】   
    5.迪米特原则(law of demeter LOD)
  • 定义:也称最少知道原则,一个软件实体应当尽可能少地与其他实体发生相互作用。
  • 尽量降低类与类之间的耦合;
  • 一个对象应该对其他对象有最少的了解
    6.开闭原则(open closed principle)
  • 定义:一个类应当对扩展开放,对修改关闭,应尽量在不修改原有代码的情况下进行扩展。
  • 特点:在拥有适应性和灵活性同时,具备较好的稳定性和延续性
  • 抽象化是开闭原则的关键

设计模式列表

  • 迭代器模式(Iterator模式)
  • 适配器模式(Adapter模式)
  • 模板模式(Template Method模式)
  • 工厂方法模式(Factory Method模式)
  • 单例模式(Singleton模式)
  • 原型模式(Prototype模式)
  • 建造模式(Builder模式)
  • 抽象工厂模式(Adstract Factory模式)
  • 桥接模式(Bridge模式)
  • 策略模式(Strategy模式)
  • 组合模式(Composite模式)
  • 装饰模式(Decorator模式)
  • 访问者模式(Visitor模式)
  • 职责链模式(Chain Responsibility模式)
  • 外观模式(Facade模式)
  • 中介者模式(Mediator模式)
  • 观察者模式(Observer模式)
  • 备忘录模式(Memento模式)
  • 状态模式(State模式)
  • 享元模式(Flyweight模式)
  • 代理模式(Proxy模式)
  • 命令模式(Command模式)
  • 解释器模式(Interpreter模式)