创建型模式

抽象工厂模式

主要作用:提供创建一系列创建相关对象的接口

应用场景:游戏服装套装,操作系统的组件模块等等

模式代码架构:

生成器模式

主要作用:逐步构建复杂对象

适用场景:盖房子,定制牛肉面,定制汽车等等

模式代码架构:

工厂方法模式

主要作用:将产品的实例化延迟到具体工厂中完成。

适用场景:创建对象需要使用大量重复代码。

模式代码架构:

原型模式

主要作用:通过复制现有对象来创建新对象。

适用场景:需要使用大量的复制,复制复杂的数据结构。

模式代码架构:

单例模式

主要作用:保证一个类只有一个实例,并为该实例提供了一个全局唯一的访问节点。

使用场景:资源分享(数据库),配置管理,缓存,日志管理,对象工厂

模式结构:

结构型模式

适配器模式

主要作用:让接口不兼容的对象能够相互合作

使用场景:连接遗留代码和新系统,连接第三方库,单元测试

模式结构:

桥接模式

主要作用:在抽象和实现之间搭建起桥梁

使用场景:GUI框架,绘图程序,数据库驱动系统

模式架构:

组合模式

主要作用:实现递归树状结构

使用场景:文件系统、组织结构或图形界面组件

模式架构:

装饰模式

主要作用:在运行时动态添加新功能

使用场景:GUI中的可视化组件,网络通信中的协议层次,日志记录系统中的不同日志级别和日志输出方式的组合,权限控制系统中的不同权限组合

模式架构:

外观模式

主要作用:为复杂系统提供简单接口,简化复杂系统的交互模式

应用场景:跨平台跨系统的程序,电商系统,复杂的library

架构模式:

享元模式

主要作用:最小化内存使用

应用场景:文字编辑器和处理器,图形应用,游戏开发

模式架构:

代理模式

主要作用:充当中介

应用场景:虚拟代理,缓存代理,保护代理,日志记录,远程对象,智能引用,监控和审计

模式架构:

行为型模式

责任链模式

主要作用:帮助处理请求逻辑顺序

应用场景:中间件,GUI事件处理,异常处理,工作流

模式架构:

命令模式

主要作用:把请求转成单独的类

应用场景:文本编辑器、图形编辑器

解释器模式

主要作用:评估语言或表达式

应用场景:编译器和解释器、配置文件解析器、查询语言解析器

迭代器模式

主要作用:遍历集合元素,同时不暴露集合的内部表示

应用场景:数据访问、文件系统、社交网络

中介者模式

主要作用:用中介封装一系列的对象交互

应用场景:聊天应用、空中交通控制系统、GUI框架、工作流引擎

备忘录模式

主要作用:保存并恢复对象的内部状态

应用场景:文本编辑器、绘图应用程序、数据库系统、游戏开发、版本控制系统

观察者模式

主要作用:定义一对多的依赖关系,让多个观察者同时监听一个主题对象。

应用场景:社交媒体平台、股票市场、GUI工具、实时消息系统

状态模式

主要作用:允许一个对象在其内部状态改变时改变其行为

应用场景:游戏角色状态切换、网络连接状态管理、订单状态管理

策略模式

主要作用:定义并封装一系列算法,使它们可以相互替换。

应用场景:支付方式、压缩和解压缩算法、图像渲染。

模块方法模式

主要作用:定义算法骨架

应用场景:数据库访问、GUI设计、框架和库

访问者模式

主要作用:将数据结构和数据操作分离,使操作集合可以独立于数据结构变化。

应用场景:编译器、文档转换