设计模式之状态
来源:互联网 发布:有声照片软件 编辑:程序博客网 时间:2024/05/21 14:46
状态模式:无非就是状态的改变
public class App { public static void main(String[] args) { Mammoth mammoth=new Mammoth(); mammoth.observe(); mammoth.timePasses(); mammoth.observe(); mammoth.timePasses(); mammoth.observe(); }}
public interface State { void onEnterState(); void observe();}
public class AngryState implements State { private Mammoth mammoth; public AngryState(Mammoth mammoth){ this.mammoth=mammoth; } @Override public void onEnterState() { System.out.println(mammoth+" 暴怒了"); } @Override public void observe() { System.out.println(mammoth+" 开始生气了!"); }}
public class PeacefulState implements State{ private Mammoth mammoth; public PeacefulState(Mammoth mammoth){ this.mammoth=mammoth; } @Override public void onEnterState() { System.out.println(mammoth+" 冷静和安详"); } @Override public void observe() { System.out.println(mammoth+" 冷静下来了"); }}
public class Mammoth { private State state; public Mammoth(){ state=new PeacefulState(this); } public void timePasses(){ if(state.getClass().equals((PeacefulState.class))){ changeStateTo(new AngryState(this)); }else { changeStateTo(new PeacefulState(this)); } } private void changeStateTo(State newState){ this.state=newState; this.state.onEnterState(); } @Override public String toString() { return "The mammoth"; } public void observe(){ this.state.observe(); }}
核心就是Mammoth这个类里面实现了逻辑切换了两个类
阅读全文
0 0
- 设计模式之状态
- 设计模式之状态
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之--状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- 设计模式之状态模式
- jquery each循环遍历完再执行的方法
- c 枚举类型详解
- 使用Python itchat个人微信账号头像拼接
- 【js获取项目根路径】
- 从架构理解价值
- 设计模式之状态
- Lucene+分词器精确提取用户自定义关键词(Lucene版本3.6)
- Azure 托管镜像和非托管镜像对比
- Python版课堂管理系统中使用UDP广播远程关闭客户端程序思路与源码
- QSerailPort使用readAll()接收数据不全问题解决
- Python快速教程
- 更难的矩阵取数问题
- android 输入法弹出把dialog顶上去并退出闪屏
- 411