实战设计模式之状态模式
2013-11-24 20:33
218 查看
只做代码分析,不做语义解析(高级程序员都从代码和UML理解设计思想)。代码来自尚学堂,UML来自本人手绘:
MMState.java
MMHappyState.java
MM.java
Boy.java
UML图:
状态模式:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类
更多内容请查看我的其他blog:http://blog.csdn.net/caicongyang
MMState.java
public abstract class MMState { public abstract void smile(); public abstract void cry(); public abstract void say(); }
MMHappyState.java
public class MMHappyState extends MMState{ @Override public void cry() { //happy } @Override public void say() { //hou mummy } @Override public void smile() { //:) } }MMUnHappyState.java
public class MMUnHappyState extends MMState{ @Override public void cry() { //unhappy } @Override public void say() { //hou papa } @Override public void smile() { //:( } }
MM.java
public class MM { private String name; private MMState state = new MMHappyState(); public MM(MMState state){ this state = state; } public String getName() { return name; } public void setName(String name) { this.name = name; } public void smile() { state.smile(); } public void cry() { state.cry(); } public void say() { state.say(); } }
Boy.java
public class Boy { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public void pursue(MM mm) { } public void doSomeThing() { MMState state = new MMHappyState(); MM mm = new MM(state); mm.smile(); mm.cry(); mm.say(); } }
UML图:
状态模式:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类
更多内容请查看我的其他blog:http://blog.csdn.net/caicongyang
相关文章推荐
- Android 设计模式实战笔记 状态模式
- 实战设计模式系列-State(状态)
- 设计模式解析与实战之状态模式
- Android实战设计模式-----状态模式
- 我的设计模式:从阿里巴巴设计规范到状态设计模式
- 设计模式——状态模式
- 设计模式的应用场景(15)--状态模式
- 状态设计模式
- 设计模式之状态模式
- 设计模式--状态模式State(行为型)
- 设计模式之(十七)状态模式State
- 被说了很多遍的设计模式---状态模式
- 设计模式—状态模式
- 设计模式:状态模式
- 实战设计模式系列-Singleton(单件)
- 03.C语言和设计模式(状态模式)
- Android 设计模式实战笔记 工厂方法模式
- 设计模式 ( 十七) 状态模式State(对象行为型)
- 设计模式-状态模式
- 设计模式_状态模式_C#