设计模式学习21 State
2010-07-24 20:13
211 查看
应用场景:
在软件的构建过程中,对象的状态改变之后,对象的行为也会随之改变,如何在运行时根据对象的状态透明的更改对象的行为就是state模式解决的问题。实现代码:
// 抽象类,表达状态的依赖状态行为 abstract class StateDocument { public abstract void Handler1(); public abstract void Handler2(); public abstract void Handler3(); public abstract StateDocument Next { get; set; } } class ReadOnlyState : StateDocument { public override void Handler1() { } public override void Handler2() { } public override void Handler3() { } } // 这里可以使用工厂模式实现 class EditableState : StateDocument { public override void Handler1() { } public override void Handler2() { } public override void Handler3() { } } // 主逻辑 class Document { StateDocument stateDocument; public void SetStateDocument(StateDocument state) { this.stateDocument = state; } public void Handler1() { stateDocument.Handler1(); // 由状态自己来管理自己的下一个状态,从而使得主逻辑更清晰。. // 实现状态流转。 this.stateDocument = this.stateDocument.Next; } public void Handler2() { stateDocument.Handler2(); } public void Handler2() { stateDocument.Handler2(); } }
相关文章推荐
- 设计模式学习21 State
- state设计模式学习, 一个C++的实现
- 【笨鸟先飞】Java重新学习日记21--设计模式之模板模式和状态模式简介
- 设计模式学习总结10 - 行为型5 - State状态模式
- 设计模式C++学习笔记之十九(State状态模式)
- 设计模式之State学习心得
- java/android 设计模式学习笔记(21)---备忘录模式
- 设计模式学习总结(21) 訪问者模式
- 设计模式C++学习笔记之十九(State状态模式)
- 步步为营 .NET 设计模式学习笔记 八、State(状态模式)
- 设计模式学习-每日一记(21.叠代器模式)
- 【HeadFirst 设计模式学习笔记】21 备忘录(Memento)模式拾零
- 设计模式学习—状态模式(State Design Pattern)
- 设计模式入门学习 状态State模式
- 设计模式学习笔记--Strategy、State
- HeadFirst 设计模式学习笔记21-- 解释者(Interpreter)模式拾零
- IOS设计模式学习(21)享元
- 设计模式学习笔记——State状态模式
- 步步为营 .NET 设计模式学习笔记 八、State(状态模式)
- 设计模式学习之------State模式(状态模式)