【系统架构师】-23种设计模式
1、创建性模式
设计模式名称 | 简要说明 | 速记关键字 |
Factory Method 工厂方法模式 | 定义了创建对象的接口,它允许子类决定实例化哪个类 | 动态生产对象 |
Abstract Factory 抽象工厂模式 | 提供一个接口,可以创建一系列相关或相互依赖的对象,而无需指定它们具体的类 | 生产成系列对象 |
Builder 构建器模式 | 将一个复杂类的表示与其构造相分离,使得相同的构建过程能够得出不同的表示 | 复杂对象构造 |
Prototype 原型模式 | 允许对象在不了解要创建对象的确切类以及如何创建等细节的情况下创建自定义对象。通过拷贝原型对象来创建新的对象 | 克隆对象 |
Singleton 单例模式 | 确保一个类只有一个实例,并且提供了对该类的全局访问入口 | 单实例 |
2、结构性模式
设计模式名称 | 简要说明 | 速记关键字 |
Adapter 适配器模式 | 将一个类的接口转换成用户希望得到的另一种接口。它使原本不相容的接口得以协同工作 | 转换接口 |
Bridge () 桥接模式 | 将一个复杂的组件分成两个独立但又相关的继承层次结构 将类的抽象部分和实现部分分离开,使它们可以独立地变化 () | 继承树拆分 |
Composite 组合模式 | 创建树型层次结构来改变复杂性,同时允许结构中的每一个元素操作同一个接口。用于表示“整体-部分”的层次结构 | 树形目录结构 |
Decorator 装饰模式 | 在不修改对象外观和功能的情况下添加或者删除对象功能 即动态地给一个对象添加一些额外的职责 | 动态附加职责 |
Facade 外观模式 | 子系统中的一组接口提供了一个统一的接口 | 对外统一接口 |
Flyweight 享元模式 | 可以通过共享对象减少系统中低等级的、详细的对象数目 提供支持大量细粒度对象共享的有效方法 | 汉字编码 |
Proxy 代理模式 | 为控制对初始对象的访问提供了一个代理或者占位符对象 | 快捷方式 |
3、行为性模式
设计模式名称 | 简要说明 | 速记关键字 |
Chain of Responsibility 职责链模式 | 可以在系统中建立一个链,这样消息可以在首先接收到它的级别处被处理,或者可以定位到可以处理它的对象 | 传递职责 |
Command 命令模式 | 在对象中封装了请求,这样就可以保存命令,将该命令传递给方法以及像任何其他对象一样返回该命令 | 日志记录,可撤销 |
Interpreter 解释器模式 | 可以解释定义其语法表示的语言,还提供了用表示来解释语言中的语句的解释器 | 虚拟机的机制 |
Iterator 迭代器模式 | 为集合中的有序访问提供了一致的方法,而该集合是独立于基础集合,并与之相分离的 | 数据集 |
Mediator 中介者模式 | 通过引入一个能够管理对象间消息分布的对象,简化了系统中对象间的通信 | 不直接引用 |
设计模式名称 | 简要说明 | 速记关键字 |
Memento 备忘录模式 | 保持对象状态的“快照”(snapshot),这样对象可以在不向外 界公开其内容的情况下返回到它的最初状态 | 游戏存档 |
Ohserver 观察者模式 | 为组件向相关接收方广播消息提供了灵活的方法 定义对象间的一种一对多的依赖关系 | 订阅、广播、联动 |
State 状态模式 | 允许一个对象在其内部状态改变时改变它的行为 | 状态变成类 |
Strategy 策略模式 | 定义一系列算法,把它们一个个封装起来,并且使它们之间 可互相替换,从而让算法可以独立于使用它的用户而变化 | 多方案切换 |
Template Method 模板方法模式 | 提供了在不重写方法的前提下允许子类部分重载方法的方法 | 框架 |
Visitor 访问者模式 | 提供了一种方便的、可维护的方法来表示在对象结构元素上 要进行的操作 | 数据与操作分离 |
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理!
部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!
图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!