23种设计模式

在这里插入图片描述

创建型设计模式(5种)

抽象工厂(Abstract Factory)设计模式

抽象工厂模式的意图是:提供一个接口,可以创建一系列相关或相互依赖的对象,而无需指定他们的具体的类。

一次可生产多个产品
在这里插入图片描述

工厂方法(Factory Method)设计模式

工厂模式的意图是:定义一个创建对象的接口,但由子类决定需要实列化哪一个类。工厂方法使得子类的实例化过程延迟。

只生产一个产品
在这里插入图片描述

原型(Prototype)设计模式

用原型实例指定创建对象的类型,并且通过拷贝原型来创建新对象。

在这里插入图片描述

单例(Singleton)设计模式

保证一个类只有一个实例,并提供一个它的全局访问点。

在这里插入图片描述
在这里插入图片描述

生成器(Builder)模式

将一个复杂的表示与其构造相分离,使得相同的构建过程能够得出不同的表示。
(餐厅点餐、服务易、厨师的一系列)
在这里插入图片描述

结构型设计模式(7)

适配器(Adapter)设计模式

将一个接口转换成用户希望得到的另外一种接口。它使得原本不相容的接口得以协同工作。
目标抽象(Target)类、适配器公接口(Adapter)、适配器母接口(Adaptee)
在这里插入图片描述

桥接(Bridge)设计模式

将抽象部分与它的实现部分分离,使它们都可以独立变化
在这里插入图片描述

组合(Composite)设计模式

将有层级关系的多个对象组合成树形结构以表示“整体-部分”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。
在这里插入图片描述

装饰(Decorator)设计模式

动态地给一个对象添加一些额外地职责、功能。
它提供了用子类扩展功能地一个灵活地替代,比派生一个子类更灵活。

外观(Facade)设计模式

为子系统中地一组接口对外提供一个唯一地接口,从而简化了该子系统地使用。

享元(Flyweight)设计模式

提供支持大量细粒度对象共享元对象地有效方法。

代理(Proxy)设计模式

为对象提供一个代理,通过代理访问这个对象。

行为型设计模式(11)

观察者(Observer)设计模式

定义对象间地一种一对多的依赖关系,当一个对象地状态发生改变是,所有依赖它地对象都得到通知并自动更新 。

访问者(Visitor)设计模式

表示一个作用与某个对象结构中的各元素的操作,使得在不改变各元素的类的前提下定义作用于这些元素的新操作。

状态(State)设计模式

允许一个对象在其内部状态改变时改变行为。

职责链(Chain of Responsibility)设计模式

为了解除请求的发送者和接收者之间的耦合,从而多个对象都有机会处理这个请求。将这些对象连接成一条链,并沿着这条链传递该请求,直到停止。

命令(Command)设计模式

将一个请求(方法调用)封装为一个对象,从而可用不同的请求对客户进行参数化,将请求排队或者记录请求日志等,支持可撤销的操作。

解释器(Interpreter)设计模式

给定一种语言,定义他的文法表示,并定义一个解释器,该解释器用来根据文法表示来解释语言中的句子。

迭代器(Iterator)设计模式

提供一种统一的方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。

中介(Mediator)设计模式

用一个中介对象来封装一系列的对象交互。她使得各对象不需要显式地相互调用,从而达到低耦合,还可以独立改变对象间地交互。

备忘录(Memento)设计模式

在不破坏封装性地前提下,捕获一个对象地内部状态,并在该对象之外保存这个状态,从而可以在以后将该对象恢复到原先保存地状态。

策略(Strategy)设计模式

定义一系列算法,把他们一个个封装起来,并使得他们之间可相互替换,从而让算法可以独立便于使用他的用户而变化。

模板方法(TemplateMethod)设计模式

定义一个算法骨架,将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重新定义算法的某些特定步骤。

  • 12
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值