解释器模式

解释器模式

一、什么是解释器模式?

解释器模式(Interpreter Design Pattern):对具有某种语法规则的语言表示,定义一个解释器来处理这个语法

Interpreter pattern is used to defines a grammatical representation for a language and provides an interpreter to deal with this grammar.

解释器模式的一些特点:

  • 存在某种语法规则,比如算术运算表达式,中英文翻译等
  • 语法规则可能会出现循环、递归
  • 解释器模式就是根据语法规则去解读“句子”

 命令模式

命令模式

一、什么是命令模式?

命令模式(Command Design Pattern):将请求封装为一个对象,使得发出请求的责任和执行请求的责任分割开。

命令有时也可以称为事件,比如点击鼠标、按下键盘等事件,通常会将它们封装成一个事件对象,然后按顺序放入队列中,再逐个去处理它们。

 享元模式

享元模式

一、享元模式是什么?

享元设计模式(FlyWeight Design Pattern):通过共享已有实例,来避免创建新的实例,减少空间消耗,提高资源利用率

享元,意思就是共享的对象、单元、元素等。

 门面模式

门面模式

一、什么门面模式?

门面模式(Facade Design Pattern):为子系统提供一组统一的接口,定义一组高层接口让系统更加易用。

二、接口设计存在什么问题?

  • 接口粒度过小时,接口的易用性就会变低,需要调用多个接口才能完成一件事

  • 接口粒度过大时,可复用性就会变低,需要针对不同业务需求实现不同的接口,导致接口无限膨胀

  • 当一个系统的功能越来越强,子系统会越来越多,对子系统的访问也变得越来越复杂

 装饰器模式

装饰器模式

一、什么是装饰器模式?

装饰器(Decorator)模式:指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式。

在现实生活中,常常需要对现有产品增加新的功能或美化其外观,如房子装修、相片加相框等,都是装饰器模式。

 组合模式

组合模式

一、组合模式是什么?

Compose objects into tree structure to represent part-whole hierarchies.Composite lets client treat individual objects and compositions of objects uniformly.

组合模式(Composite Design Pattern):将一组对象组织成树形结构,以表示一种“部分 - 整体”的层次结构。

也可以这么说,组合模式就是把容器与内容看成同一种对象,并将它们组合成树状结构,创造一种递归的形式。

比如文件和目录,虽然直观上是不同的对象,但是如果使用组合模式来实现它们的话,可以将文件和目录都看成是继承于同一种条目类,因此算是属于同一类对象。

 适配器模式

适配器模式

一、什么是适配器模式?

适配器模式(Adapter Design Pattern):将一个类的接口转换成希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。

适配者模式的几个特点:

  • 已存在旧接口实现
  • 希望使用新接口,但是又不想重新实现,想要复用已有的旧接口实现类

适配器模式,就是将旧接口实现适配为新接口。

 原型模式

原型模式

一、什么是原型模式?

原型设计模式(Prototype Design Pattern),是指根据实例原型、实例模型来生成新的实例对象。

也就是用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。

重点在于新实例对象,不是创建出来的,而是基于已有的原型对象复制的。

 建造者模式

建造者模式

一、什么是建造者模式?

建造者设计模式(Builder Design Pattern),是指将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示。

  • 使用建造者模式的目的,就是为了解决复杂对象的构建

它将一个复杂的对象分解为多个简单的对象,然后一步一步构建起来。

 抽象工厂模式

抽象工厂模式

一、什么是抽象工厂模式

抽象工厂(AbstractFactory)是一种为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无须指定所要产品的具体类就能得到同族的不同等级的产品的模式结构。

抽象工厂模式是工厂方法模式的升级版本,工厂方法模式只生产“一个等级”的产品,而抽象工厂模式可生产“多个等级”的产品。