设计模式应用举例(2)
来源:互联网 发布:淘宝搜索热词排名 编辑:程序博客网 时间:2024/06/09 20:23
三、关系模式
A. 父类与子类关系
1)策略模式(strategy)
强调重载一组同性质、行为细节相差大的接口,使这些接口可替换
例如,压力测试工具,测试玩家登陆登出、测试玩家不同场景间切换、测试玩家场景内移动等各种想要测试的行为、过程,运用策略模式,可插拔不同的测试内容,方便扩展编写自定义测试内容
2)模版方法模式(template method)
强调重载一组同性质、行为细节相仿的接口,可复用接口、默认实现等
例如,角色背包、宠物背包、角色仓库
B. 类之间的关系
1)观察者模式(observer)
也就是发布订阅模式,被观察者发生变化,通知所有观察者
例如,网络消息分发器、事件触发分发器等等
2)迭代子模式(iterator)
按序访问某聚集中的对象
例如,STL容器迭代器;自己写迭代器的地方还真不多哈!基本上是用现在库提供的。若有需要自己用到设计该模式的例子请留言!
3)责任链模式(chain of responsibility)
将处理句柄做成链表形式,依次调用!
完全无法理解为什么有这种设计模式!需要吗?需要吗?需要吗?若有需要自己用到设计该模式的例子请留言!
4)命令模式(command)
隐藏命令细节,请求命令和执行命令解藕
例如,作弊命令系统
例如,播放一组动作系列,如玩家施法过程,用该模式可以很好的解藕各种子动作间的关系
C. 类的状态
1)备忘录模式(memento)
即备份-还原模式
例如,编辑器中的 ctrl+z
例如,数据库的滚回操作
相对而言,自己是没用过该模式
2)状态模式(state)
根据不同的状态,当状态改变时,同时改变其行为
例如,session状态的维护
D. 通过中间类
1)访问者模式(visitor)
通过对被访问者的引用,实现新的操作逻辑
例如,想提炼、扩展某类库的功能,可以通过访问者模式来提供该类库的扩展类,从而避免直接修改类库源码
2)中介者模式(mediator)
有点像外观模式,侧重点不同,外观模式侧重提供一组接口供外部使用;
中介者模式,则侧重点在于,避免类A与类B间的相互关联。即删掉该中介者类,类A、类B依然是完整的,只是2者间少了成关系
例如,编写一个带有缓存功能的数据库类,该类就可以做成中介者,内部引用数据库组件 和缓存组件,从而避免的 数据库组件、缓存组件之间需要相互联系
3)解释器模式(interpreter)
通过提供一个上下文环境类,使各种操作基于此上下文环境做各种实现
例如,web服务器都会提供web上下文环境,里面提供了request,session,application等信息
例如,游戏服务器也可以抽象出服务器上下文运行环境,提供session管理,安全连接等等一系列操作
- 设计模式应用举例(2)
- 设计模式应用场景举例
- 设计模式应用举例(1)
- android常用设计模式及应用举例
- 设计模式 举例理解
- 装饰设计模式举例
- Android设计模式举例
- 观察者设计模式举例
- 第五章 应用设计举例
- 建造者设计模式举例
- 设计模式:5种创建模式举例
- Java设计模式:工厂模式举例
- java设计模式之代理模式举例
- Java中的DAO设计模式应用举例 ------> 来自Java WEB 开发实战经典
- LIBEVENT应用举例2
- 静态应用举例2
- 反射应用举例2
- 多例模式应用场景举例
- OVS操作总结
- VS 中的C4996错误解决办法
- VRRP协议详解-----(2)
- 深入浅出Mybatis系列(六)---objectFactory、plugins、mappers简介与配置
- (位运算符)请自己实现两个整数变量的交换 ^的特点 (面试题)
- 设计模式应用举例(2)
- BZOJ2801: [Poi2012]Minimalist Security
- 连接Oracle数据库各链接串
- 卡片游戏--循环队列实现
- Bootstrap 教程第五课:制作下拉菜单
- 学习方法思路记录
- JSON格式的String转Map——jackson
- 浅析Java中CountDownLatch用法
- opencv 图像的深度和通道介绍