设计模式之---------状态模式
来源:互联网 发布:建个网络平台多少钱 编辑:程序博客网 时间:2024/05/18 01:06
状态模式,顾名思义就是用于处理状态的一种方法。
至于具体如何实现下面再说,先来看一个事例:饮料自动贩卖机,它有很多状态(售空,有货,补货。。。。)
对于大多数没有了解过状态模式的人来说,要编程实现贩卖机这个例子的话可能会用到许多条件判断语句,利用判断分支来决定执行的操作,而这些操作的实现又是依赖于方法的。
而状态模式就不同了,具体说就是:把各个状态定义成不同的对象,各个对象封装自己的的实现。然后定义一个上下文对象,上下文对象的状态即是它当前关联的状态对象。
一图胜千言,上图!!
context是上下文对象,也就是用户直接操作的对象。
AbstractState是抽象状态,State1\2都是具体的状态。
要注意的是,Context对象与AbstractState状态之间的关系是聚合关系。我们知道,聚合是一种强的关联关系,他表示的是一种整体的关系。所以说,Context与state类共同组成了问们需要的状态变化。
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之--状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 【设计模式】之状态模式
- 第十四周上机实践项目--------数组的排序
- MongoDB 复制集(二) 选举 自动故障切换
- Android 文件上传,解决NetworkOnMainThreadException问题!
- hdu 3487 Play with Chain (Splay树) 区间切割 插入 翻转
- redhat 5.4 ftp服务器搭建故障处理
- 设计模式之---------状态模式
- javascript之jQuery 性能优化技巧
- RMAN Restore Database/Tablespace
- rpm 包管理器应用指南
- HUST 1328 String KMP 递增思路
- Java读取excel的相关的原理和方法介绍
- 1182C语言--数日子
- OC之【NSString】
- 安装qt-embedded-linux-opensource-src-4.5.3 记录