首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
设计模式
eacape
创建于2022-05-22
订阅专栏
参考极客时间王争的设计模式之美
暂无订阅
共21篇文章
创建于2022-05-22
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
责任链模式
通过构建一条流水线,将一个请求按照顺序进行多次处理 下面使用一个登录的例子来实现责任链模式 请求体类 抽象处理类 具体处理过程 验证密码 → 权限验证 测试 可以与建造者模式结合用于构建调用链 抽象处
命令模式
命令模式就是将一组操作得调用封装在一个对象里面,这个对象称作命令对象。 例如我们可以有一个专门用于开启、关闭电器的命令,通过调用这命令就可以开关电器。 那么我们可以写一个关于电器的命令类,在创建对象的
中介者模式
中介者维护一组用户的交互,用户之间通过中介者进行交互,而不是直接交互。 中介者模式种一般有以下角色 抽象中介者:定义中介者需要的执行方法。 具体中介者:实现用户交互的具体逻辑。 用户类:引入中介者,向
备忘录模式
根据对象的内部状态变化生成相应快照,以便以后恢复。 下面举一个使用笔记软件的历史版本控制的例子来实现备忘录模式。 原始类 备忘录类(旧版本类) 版本存储类 测试类
访问者模式
在类的内部结构不变的情况下,不同的访问者访问这个对象,都会呈现出不同的效果。 访问者模式有以下角色 元素类:是一个抽象类或者接口,里面会定义一个接收(accept)访问者的抽象方法,使得每一个元素能被
策略模式
策略是对算法的封装,将不同的算法封装到具有相同接口的独立的类中,使算法本身和客户端分离开来,并且算法之间可以相互替换。 在策略模式中主要有以下几种角色 上下文信息类(Context):用于存放和执行需
模板方法模式
定义一个算法骨架(模板),将算法中的某一些步骤对子类开放修改,以此来区别子类。 比如说在部队中可能在一起的有炮兵、汽车兵、步兵等,他们每天都要训练,训练内容射击、跑步是每个兵种每天都要练的,但是还有其
访问者模式
在类的内部结构不变的情况下,不同的访问者访问这个对象,都会呈现出不同的效果。 访问者模式有以下角色 元素类:是一个抽象类或者接口,里面会定义一个接收(accept)访问者的抽象方法,使得每一个元素能被
观察者模式
观察者模式也被称作“发布-订阅模式”,因此其对象之间是发布和订阅的角色。 在对象间定义一对多依赖,当一个对象的状态改变,依赖它的对象收到通知并自动更新。 抽象主题(Subject)角色:也叫抽象目标类
享元模式
利用共享的方式来实现对象复用,这样可以大幅度减少对象创建的数量、避免了创建大量相似对象的开销,从而提高了资源的利用率。 在之前的单例模式中,曾经写过一个“多例模式”的demo,一个类可以有固定个数的对
组合模式
将对象组合成树状结构以表示整个部分的层次结构,组合模式可以让用户统一对待单个对象和对象组合。 组合模式一般可以分三个角色 抽象组件:定义需要实现的统一操作 组合节点:一个可以包含多个对象的复合对象,意
门面模式
为系统中的一组接口提供统一的接口,本意就是使用一个接口统一多个接口的功能。 门面模式可以代理多个接口,代理模式一般只代理一个接口。 比如说支付宝中完成一笔交易需要调用下单接口、入账接口、通知接口等接口
装饰器模式
允许动态的向一个现有对象增加新功能,同时又不改变它的结构,相当于对现有对象的一个包装,因此装饰器模式也被称作包装模式。 装饰器模式中一般存在以下四中角色 抽象组件:具体组件和抽象装饰器共同的父类,最基
桥接模式
将抽象和具体实现分离,通过抽象类来关联其具体实现,减少类之间的耦合。 下面通过一个车厂和汽车品牌的实例来实现桥接模式 汽车品牌的抽象 接口 里面声明一个获取汽车品牌的方法 车厂抽象类 其中会组合汽车品
适配器模式
目录 类适配器 对象适配器 两种适配器的选择 使用场景 类适配器 下面我们使用Mac电脑和U盘适配的一个简单实例来了解类适配器的实现方式。 首先创建一个Mac的接口有读写的数据的功能 然后有一个u盘的
代理模式
目录 静态代理 动态代理 JDK动态代理 cglib动态代理 静态代理 被代理类和代理类都实现Apple接口 创建一个“烟台”苹果的实例作为被代理类,里面主要实现一个购买苹果的方法,也是后面主要用来被
原型模式
目录 定义 实现 使用场景 定义 使用原型实例创建对象实例,然后通过拷贝这些原型来创建新的对象。 在java中主要是通过原型实现Cloneable接口,然后又使用clone方法来复制这个原型实例给客户
工厂模式
目录 简单工厂模式 工厂方法模式 抽象工厂模式 简单工厂模式 简单工厂中主要存在以下角色 工厂(Factory):提供了静态工厂方法,它负责创建所有具体产品的实例。 抽象产品(Abstract Pro
建造者模式
目录 使用场景 实现 使用场景 当一个类的构造函数需要四个及以上的参数,且某些参数可为空,可以考虑选用建造者模式。 实现 假如现在有个pdf的配置类其中有尺寸、标题、作者、颜色等字段,其中作者和颜色是
单例模式
定义 应用场景 单例实现方式 饿汉式 懒汉式 双重校验锁 枚举类 静态内部类 单例模式扩展 线程唯一的单例 集群唯一实例 多例模式 定义 所谓单例就是一个类有以下特点: 只允许被创建一个对象 提供了一
下一页