设计模式是解决常见软件设计问题的可重用解决方案,提高代码可读性、可维护性和可扩展性。
三大类别
创建型模式
| 模式 | 说明 |
|---|---|
| [[单例模式]] | 确保唯一实例 |
| 工厂模式 | 创建对象接口 |
| 抽象工厂 | 创建相关对象系列 |
| 生成器 | 分离构建与表示 |
| 原型 | 复制现有实例 |
结构型模式
| 模式 | 说明 |
|---|---|
| 适配器 | 接口转换 |
| 桥接 | 分离抽象与实现 |
| 组合 | 树状结构 |
| 装饰器 | 动态添加功能 |
| 外观 | 简化接口 |
| 享元 | 共享细粒度对象 |
| 代理 | 控制访问 |
行为型模式
| 模式 | 说明 |
|---|---|
| 职责链 | 请求传递链 |
| 命令 | 封装请求 |
| 迭代器 | 顺序访问 |
| 中介者 | 封装交互 |
| 备忘录 | 保存状态 |
| 观察者 | 一对多通知 |
| 状态 | 状态改变行为 |
| 策略 | 算法封装互换 |
| 模板方法 | 算法骨架 |
| 访问者 | 增加新操作 |
SOLID 原则
| 原则 | 说明 |
|---|---|
| S - 单一职责 | 一个类只有一个变化原因 |
| O - 开闭 | 对扩展开放,对修改关闭 |
| L - 里氏替换 | 子类可替换父类 |
| I - 接口隔离 | 不同客户端不同接口 |
| D - 依赖倒置 | 依赖抽象不依赖具体 |
反模式
- 大泥球
- 神对象
- 单例滥用
张芷铭的个人博客
Comments