/DesignPatterns

通用技能-你知道哪几种设计模式?

Primary LanguageObjective-CMIT LicenseMIT

面向对象设计的设计模式

6个创建型设计模式,我的总结:

  • 简单工厂模式(Simple Factory Pattern):一种工厂(工厂),一种产品(手机)。细分手机:工厂创建手机根据tag;
  • 工厂方法模式(Factory Method Pattern):多种工厂(苹果工厂、小米工厂),一种产品(手机)。细分工厂:用相应的工厂创建相应的手机;
  • 抽象工厂模式(Abstract Factory Pattern):多种工厂(苹果工厂、小米工厂),多种产品(手机、电脑)。细分工厂和细分手机;
  • 单例模式(Singleton Pattern):创建一个静态对象,对外开放属性或者方法;
  • 生成器模式(Builder Pattern):创建对象,通过统一的创建接口,在接口内部由各Builder完成创建。
  • 原型模式(Prototype Pattern):创建对象,通过copy其他对象;

6种构造性设计模式,我的总结:

  • 外观模式:提供各种独立的接口,按需调用;
  • 适配器模式:上层接口名称不变,只是改变了接口的实现;
  • 桥接模式:将2个抽象类组合到一起,即一个持有另外一个;
  • 代理模式:将数据给到代理,或者由我的代理执行事件;
  • 装饰着模式:装饰着持有被装饰着,进行装饰;
  • 享元模式:复用已经创建好的对象,在对这个对象做其他设置;

7种行为型设计模式,我的总结:

  • 模板方法模式:定义通用接口,开放需要子类重写的接口;
  • 策略模式:定义一个大的行为,在定义一些小的行为,如果要调用小的行为,由大行为调用相应的小行为;
  • 责任链模式:如果一些对象的行为相同,且存在顺序关系,那么就可以定义为单向链。从头部节点触发行为,链式触发下一个节点的相同行为;
  • 状态模式:定义各种状态,当切换状态时,执行新状态时的各种行为;
  • 命令模式:把单独的行为封装成对象,如果想调用某一行为时,只需要调用相应的命令对象;
  • 观察者模式:建立一对一或者多对一的关系。当被观察者改变时,触发观察者行为;
  • 中介者模式:转发中转站,调用各个对象的相同行为;

参考文档: https://juejin.im/post/5bcb0362e51d450e7042eb6d