设计模式:状态模式(学习笔记)
状态模式原理:
一个糖果机项目:
0.智能糖果机,用Java软件控制糖果机:
1.待机
2.投入一元硬币
3.转动把手
4.滑落一颗糖果
5.待机(根据机器内糖果库存情况,是否提示售罄)
对应状态图:
加入游戏元素:有10%的概率可以拿到2粒糖果
状态模式:能根据内部状态的变化,改变对象的行为,看起来好像修改了类
状态模式意义:
原则对修改代码关闭,对扩展开放,状态模式变化部分:状态有可能会增加,继承超类,扩展状态,实现对扩展的开放,同时,继承不会对超类,及其余子类不影响。
策略模式、状态模式、模板模式各自的含义几区别:
策略模式:某个特性不一样,抽象化类族,特性变更后状态不变,初始化设定行为;
装套模式:某个状态不同,不同状态切换来完成不同的动作。状态模式每个部分都是完整的;
模板模式:具体到动作,封装动作行为,行为动作属于一系列,每个动作是一个部分,,诶个部分单独分装,所有部分平起来形成整体;
策略模式一般情况下可以作为状态模式的基础