设计模式之状态模式
2013-09-24 10:34
190 查看
1,状态模式允许一个"对象"在其内部状态改变的时候改变其行为。 2,状态模式的角色: 抽象状态,具体状态(一般是几个,每一个状态下有不同的行为,),环境(context)角色(就是对象,什么对象的状态,一般该对象要初始化一个状态,还有改变状态,还有该状态下的行为) 我们打篮球的时候运动员可以有正常状态,不正常状态,和超常状态,现在我们就以我们打篮球时候投篮时候的状态来举例子, 首先我们抽象出状态,以及该状态下的行为, interface State{ public void shot(); } 然后实现具体状态,我们这里有三个,三种状态三种行为。 不正常 public class NonormalState implements State{ public void shot(){ System.out.println("今天你投篮十中一"); } } 正常: public class NormalState implements State{ public void shot(){ System.out.println("今天你投篮十中五"); } } 超常: public class SuperState implements State{ public void shot(){ System.out.println("今天你投篮十中十"); } } 这个时候我们来一个环境,一个运动员,正常情况下是正常状态 public class Player{ private State state=new NormalState(); public void setState(State state){ this.state=state; } public void shot(){ state.shot();//这里我感觉是创建型模式的适配器模式,对象适配器。应该就是这样, } } 测试这个例子 public class StateTest { public static void main(String[] args){ Player player=new Player(); player.shot();//正常下投篮 player.setState(new NonormalState()); player.shot();不正常下投篮 player.setState(new SuperState()); player.shot();超常下投篮 } }
相关文章推荐
- 设计模式->行为型模式->状态模式
- 设计模式笔记(22)---状态模式(行为型)
- 【设计模式】学习笔记14:状态模式(State)
- java设计模式(二十)--状态模式
- 23种设计模式 之 State模式(状态模式)[C语言]
- 设计模式之状态模式
- [设计模式]状态模式
- 实战设计模式之状态模式
- 设计模式学习笔记-状态模式
- 设计模式:状态模式(State)
- 设计模式之状态模式(二)
- 设计模式-行为型- 状态模式(State)
- 5 设计模式之状态模式(五)
- 设计模式学习笔记-状态模式
- 设计模式(20)-状态模式(State)
- java设计模式之状态模式
- JAVA设计模式——状态模式(State)
- 浅学设计模式之状态<state>模式
- 设计模式之 State 状态模式
- java设计模式(二)—— 装饰、门面、享元、原型、状态、策略