设计模式C++实现(16)——状态模式
来源:互联网 发布:jersey 返回对象json 编辑:程序博客网 时间:2024/06/06 09:18
软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。本文介绍状态模式的实现。
状态模式:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。它有两种使用情况:(1)一个对象的行为取决于它的状态, 并且它必须在运行时刻根据状态改变它的行为。(2)一个操作中含有庞大的多分支的条件语句,且这些分支依赖于该对象的状态。本文的例子为第一种情况,以战争为例,假设一场战争需经历四个阶段:前期、中期、后期、结束。当战争处于不同的阶段,战争的行为是不一样的,也就说战争的行为取决于所处的阶段,而且随着时间的推进是动态变化的。下面给出相应的UML图。
实现的代码比较简单,给出War类和State类,War类中含State对象(指针形式)。
给出具体的状态类:
使用方式: 本人享有博客文章的版权,转载请标明出处 http://blog.csdn.net/wuzhekai1985阅读全文
0 0
- 设计模式C++实现(16)——状态模式
- 设计模式C++实现(16)——状态模式
- 设计模式C++实现(16)——状态模式
- 设计模式C++实现(16)——状态模式
- 设计模式C++实现(16)——状态模式
- 设计模式C++实现(16)——状态模式
- 设计模式C++实现(16)——状态模式
- 设计模式C++实现(16)——状态模式
- 设计模式C++实现(16)——状态模式
- 设计模式C++实现(16)——状态模式
- 设计模式C++实现(16)——状态模式
- 设计模式C++实现(16)——状态模式
- 设计模式C++实现(16)——状态模式
- 设计模式C++实现(16)——状态模式
- 设计模式C++实现(16)——状态模式
- 设计模式C++实现(16)——状态模式
- 设计模式C++实现(16)——状态模式
- 设计模式C++实现(16)——状态模式
- HbaseTemplate配置进阶:利用Spring自动装配加载HbaseTemplate
- android六大布局和UI组件
- codeforces 122A Lucky Division
- java 金额数字转中文
- 设计模式之生成者与消费者模式
- 设计模式C++实现(16)——状态模式
- ShareSDK新浪微博登录提示 21338:sso package or sign error"
- SVN:Please execute the 'Cleanup' command.
- 数字的因子和
- 获得员工部门
- Android面试篇之HashMap和Hashtable的区别
- 查看某个端口的占用情况
- Essential Qt 第十八章 贪吃蛇(下)
- Python __init__.py 作用详解