状态模式-马士兵设计模式教程
2012-07-20 15:15
274 查看
//表示状态的接口类 public interface State { void smile(); void cry(); void say(); } //高兴的状态 public class HappyState implements State{ @Override public void cry() { System.out.println("高兴的哭"); } @Override public void say() { System.out.println("高兴的说"); } @Override public void smile() { System.out.println("高兴的笑"); } } //不高兴的状态 public class UnHappyState implements State{ @Override public void cry() { System.out.println("伤心的哭"); } @Override public void say() { System.out.println("不高兴的说"); } @Override public void smile() { System.out.println("不高兴的笑"); } } public class MM{ private State state = new HappyState();//在这里的状态决定了mm的行为 private String name; public MM(State state){//可以在外部传递mm的状态 this.state=state; } public MM(){} public String getName() { return name; } public void setName(String name) { this.name = name; } public void cry() { state.cry(); } public void say() { state.say(); } public void smile() { state.smile(); } } public class Test { public static void main(String[] args) { MM mm = new MM(new HappyState()); mm.cry(); MM mm1=new MM(new UnHappyState()); mm1.cry(); /** * 运行结果: * 高兴的哭 * 伤心的哭 */ } }
相关文章推荐
- 设计模式详细系列教程 (三)以网上购物通用的订单流程 详解状态模式
- 设计模式详细系列教程 (三)以网上购物通用的订单流程 详解状态模式
- 简单模拟LinkedList-迭代器设计模式-马士兵设计模式教程 .
- C# 设计模式系列教程-状态模式
- 设计模式详细系列教程 (三)以网上购物通用的订单流程 详解状态模式
- 简单模拟ArrayList-迭代器设计模式-马士兵设计模式教程
- 责任链或过滤器模式2-使用过滤链-马士兵设计模式教程 .
- 简单模拟Comparator-策略设计模式-马士兵设计模式教程
- java设计模式---状态模式
- java设计模式精品教程
- php实现设计模式之 状态模式
- TypeScript设计模式之职责链、状态
- 设计模式之状态模式(State)
- 【C#】枚举类型Enum与状态设计模式
- java设计模式之状态模式
- iOS设计模式-开发思路提问(系列1:一个Button的三种状态怎样切换?)
- java设计模式之状态模式
- 我的公司培训讲义(2):设计模式思想精要教程
- 【学习笔记javascript设计模式与开发实践(状态模式)----16】
- 设计模式C++学习笔记之十九(State状态模式)