【设计模式】—— 状态模式State
2014-11-09 11:58
330 查看
前言:【模式总览】——————————by xingoo
例如,水在固体、液体、气体是三种状态,但是展现在我们面前的确实不同的感觉。通过改变水的状态,就可以更改它的展现方式。
应用场景
1 当一个对象的行为,取决于它的状态时
2 当类结构中存在大量的分支,并且每个分支内部的动作抽象相同,可以当做一种状态来执行时。
View Code
运行结果
模式意图
允许一个对象在内部改变它的状态,并根据不同的状态有不同的操作行为。例如,水在固体、液体、气体是三种状态,但是展现在我们面前的确实不同的感觉。通过改变水的状态,就可以更改它的展现方式。
应用场景
1 当一个对象的行为,取决于它的状态时
2 当类结构中存在大量的分支,并且每个分支内部的动作抽象相同,可以当做一种状态来执行时。
模式结构
package com.xingoo.test.design.state; class Context{ private State state; public void setState(State state) { this.state = state; } public void operation(){ state.operation(); } } interface State{ public void operation(); } class ConcreteState1 implements State{ public void operation(){ System.out.println("state1 operation"); } } class ConcreteState2 implements State{ public void operation(){ System.out.println("state2 operation"); } } class ConcreteState3 implements State{ public void operation(){ System.out.println("state3 operation"); } } public class Client { public static void main(String[] args) { Context ctx = new Context(); State state1 = new ConcreteState1(); State state2 = new ConcreteState2(); State state3 = new ConcreteState3(); ctx.setState(state1); ctx.operation(); ctx.setState(state2); ctx.operation(); ctx.setState(state3); ctx.operation(); } }
View Code
运行结果
state1 operation state2 operation state3 operation
相关文章推荐
- 设计模式之State Pattern 状态模式。
- 设计模式学习笔记(二十二)——State状态
- java设计模式-状态模式(STATE)
- 设计模式之(十九)状态模式(state)
- 设计模式--状态模式(State)
- 设计模式(17)-状态模式(State)
- 设计模式之状态(state)模式
- 设计模式学习总结10 - 行为型5 - State状态模式
- 实战设计模式系列-State(状态)
- 设计模式 - State 模式(状态模式)
- [导入]C#面向对象设计模式纵横谈(22):(行为型模式) State 状态模式.zip(6.24 MB)
- 设计模式----State(状态)
- 设计模式——状态模式(State)
- 设计模式----State(状态)模式
- 设计模式--状态模式(State)
- 设计模式之状态模式(State)
- 设计模式----State(状态)
- 设计模式与泡mm的关系之state状态模式及再思考
- 设计模式之State(状态模式)
- 设计模式(19)-状态模式(State)