设计模式23种

创建型

对象的创建。5

创建型 定义 可变部分(允许独立变化,而又不会导致重新设计)
工厂方法
Factory Method
定义创建对象的接口,让子类决定实例化 被实例化的子类
抽象工厂
Abstract Factory
提供创建一系列相关或依赖对象的接口,无需指定具体类 产品对象家族
原型
Prototype
拷贝原型,创建新对象 被实例化的类
单例
Singleton
一个类仅有一个实例 一个类的唯一实例
建造者
Builder
复杂对象的构建与表示分离,构建过程创建不同的表示 如何创建一个组合对象

结构型

处理类或对象的组合。7

结构型 定义 可变部分
适配器
Adapter
类的接口转换,不兼容的类可以一起工作 对象的接口
桥接
Bridge
类的抽象与实现分离,都可以独立地变化 对象的实现
组合
Composite
对象组合成树形结构,使用具有一致性 一个对象的结构和组成
装饰者
Decorator
动态添加额外的职责,扩展功能更灵活 对象的职责,不生成子类
外观
Facade
一组接口提供一个高层接口,使子系统更加容易使用 一个子系统的接口
享元
Flyweight
共享支持细粒度对象 对象的存储开销
代理
Proxy
其他对象代理控制这个对象的访问 如何访问一个对象;该对象的位置

行为型

对象间的通信。11

行为型 定义 可变部分
解释器
Interpreter
给定语言,定义文法表示和解释器,解释句子 一个语言的文法及解释
模板方法
Template Method
定义操作的骨架,将一些步骤延迟到子类中 算法中的某些步骤
职责链
Chain of Responsibility
为解除耦合,使多个对象都有机会处理这个请求 满足一个请求的对象
命令
Command
请求封装为对象,参数化请求,可取消操作 何时、怎样满足一个请求
迭代器
Iterator
顺序访问聚合对象 如何遍历各元素
中介者

Mediator
中介对象封装对象交互 对象间交互
备忘录
Memento
捕获对象的内部状态并保存,可将对象恢复 哪些私有信息,何时存储
观察者
Observer
一个对象的状态发生改变,所有依赖对象都得到通知并刷新 多个对象依赖于另外一个对象,如何保持一致
状态
State
对象内部状态改变时改变它的行为 对象的状态
策略
Strategy
一系列的算法,可替换 算法
访问者
Visitor
不改变各类的前提下定义新操作 某些可作用于一个/组对象的操作,但不修改这些对象的类

UML类图


其中,

关系 说明 备注
依赖 ----> 临时性的关联,最弱 常用于 局部变量、函数参数、返回值等
关联 引用关系 单向/双向,常用于 类的属性表达
聚合 整体 contains 局部 常用于 构造、Setter或业务方法,可单独存在
组合 整体 has 局部 在整体构造方法中实例化,同生命周期
多重性 通常在关联、聚合、组合中使用 N...N(*)
posted @   wesson2019  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示