25种设计模式的自我理解和简单总结

分类

设计模式

描述

创建型

单例模式

确保一个类只有一个对象。实现方式有:饿汉式、懒汉式、双重校验锁、静态内部类实现、枚举实现

简单工厂

简单工厂类创建对象

工厂方法

由工厂子类决定创建什么类型的对象,不同的工厂子类创建不同的对象

抽象工厂

创建产品家族,一个工厂子类可以创建多种对象

建造者模式

将复杂对象的构建步骤和每个步骤的实现解耦,指挥者类关联建造者类并实现对象的构建步骤,建造者子类中实现每个步骤的具体逻辑,并提供一个返回复杂对象的方法

原型模式

从一个已有对象创建它的拷贝

行为型

责任链模式

请求在链中传递,直到有一个对象处理它为止

命令模式

调用者类持有命令类对象,命令类持有命令的执行者类对象

解释器模式

给定一个语言,定义文法表示和解释器,使用解释器来解释语言中的句子。包含:上下文、抽象表达式类、表达式子类,表达式子类可以持有抽象表达式类对象

迭代器模式

聚合类和迭代器类,聚合类有一个创建迭代器的方法,迭代器类关联聚合类

中介者模式

实现通信对象的解耦,中介者持有所有通信对象

备忘录模式

原始对象、备忘录和备忘录保存者三部分,原始对象可以创建备忘录和恢复状态

观察者模式

主题通知订阅了自己的观察者状态发生变化,主题内部保存了订阅了自己的观察者

状态模式

在一组状态下有一组行为,所有状态持有同一个上下文,不同的状态下行为不同,发生行为时上下文状态可能会发生变化

策略模式

定义了算法家族,把它们封装起来,可以相互替换

模板方法

模版方法中定义了算法的执行步骤,在子类中步骤可以有各自的实现

访问者模式

访问者、数据结构和元素三部分,将元素和作用在元素上的操作解耦,在访问者类中实现作用在元素上的逻辑

空对象模式

使用什么都不做的空对象来代替null

结构型

适配器模式

类适配器:适配器类继承适配者类,实现目标接口

对象适配器:适配器类持有适配者类对象,实现目标接口

桥接模式

将抽象和实现分离,抽象类依赖实现类

组合模式

将对象组合成树状结构以表示整体-部分的层次结构,组件类是叶子类和组合类的父类,组合类持有一个组件类集合

装饰者模式

装饰者套在被装饰者上,动态拓展被装饰者的功能。组成:组件接口、实现该接口的具体实现类(被装饰者)和抽象装饰者类、装饰者子类,抽象装饰者类持有组件接口

外观模式

提供一个统一的接口来访问子系统的一群接口

享元模式

利用共享的方式支持大量细粒度对象,对象中部分内部状态是相同的(作为HashMap的key),使用HashMap来缓存对象,减少创建对象的数量。提供一个享元接口,具体享元类包含内部状态,享元工厂中有一个HashMap,并提供外部方法获取对象

代理模式

给某对象提供一个代理来控制对该对象的访问。目标类和代理类实现同一个接口,代理类持有一个目标类对象

你可能感兴趣的:(设计模式)