状态模式
来源:互联网 发布:java培训四月 编辑:程序博客网 时间:2024/06/06 01:26
生活中大部分东西都用容易变的和不容易变的,容易变的我们叫这个东西处于某种状态。比如人睡觉时你不要吵醒他。有时候某种状态影响对象整个的外部表现:像水和冰给人感觉就不是一个东西了,这时候我们就可以用状态模式了:
public class State { public interface IWaterState { void printState(); } public static class IceState implements IWaterState { @Override public void printState() { System.out.println("冰,固态可砸碎"); } } public static class WaterState implements IWaterState { @Override public void printState() { System.out.println("水,液态可以喝"); } } public static class WaterContext implements IWaterState {//不同的状态用不同类的方法,环境类将其自由变换 private IWaterState mIWaterState; public void setIWaterState(int i) { switch (i) { case 0: mIWaterState = new IceState(); break; case 1: mIWaterState = new WaterState(); break; } } @Override public void printState() { mIWaterState.printState(); } } public static void main(String[] args) { WaterContext waterContext = new WaterContext(); //模拟状态改变 waterContext.setIWaterState(0); waterContext.printState(); waterContext.setIWaterState(1); waterContext.printState(); }}输出:冰,固态可砸碎水,液态可以喝
在用状态模式的时候要区分什么是跟随状态变化的,什么不是。
觉得容易理解的话面向对象的23种设计模式点这里
阅读全文
1 0
- 状态模式(状态变化)
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- Servlet 异步访问配置及代码
- 如何在web.xml文件中引入其他的xml…
- H5 formData实现批量ajax上传文件
- 深蓝的新硬盘:莫队算法初步
- Python3 pdb 命令集合
- 状态模式
- oracle创建表空间并授权用户
- Scala语言的访问修饰符
- FusionCharts的使用及属性大全
- jquery的 ajax返回值为中文时…
- Oracle的substr函数简单用法
- Linux被占用的日志文件清理后磁盘空间释放,但ll查看仍然显示曾经达到的最大大小,此时copy该文件也是按曾经最大的值占用空间
- 使用正则表达式匹配任意字符包括空…
- JSON和JSONP,也许你会豁然开朗,…