设计模式-行为型软件设计模式(六)
来源:互联网 发布:c语言驱动写法 编辑:程序博客网 时间:2024/06/08 07:22
状态模式
介绍
状态模式将不同状态下的行为封装在不同的类中,每个类代表一个状态。
(1)Context:定义了与客户程序的接口,它保持了一个ConcreteState的代表现在状态的实例。
(2)State:定义了状态接口,它的各个子类封装了在各种不同状态下的行为。
(3)ConcreteState子类:封装了在各种不同状态下的行为。
示例
开关有开和关两种状态public class Context{ private Switch s,On,off; public Context(Switch s) { this.s = s; on = new On(); off = new Off(); } ...可以设置当前的状态...}public abstract class Switch{ ...}public class On extends Switch{ ...}...
优点
(1)修改状态子类时,不需要修改Context代码
(2)在增加新的状态子类时,可能只修改少许代码。
(3)将状态与客户类分离。
阅读全文
1 0
- 设计模式-行为型软件设计模式(六)
- 设计模式-行为型软件设计模式(二)
- 设计模式-行为型软件设计模式(一)
- 设计模式-行为型软件设计模式(三)
- 设计模式-行为型软件设计模式(四)
- 设计模式-行为型软件设计模式(五)
- 设计模式笔记--行为型模式之六--Memento 备忘录
- 详解java设计模式(六)之观察者模式(行为型)
- 设计模式-行为型模式
- [设计模式]--行为型模式
- 设计模式:行为型模式
- 设计模式--行为型模式
- 设计模式--行为型模式
- 设计模式----行为型模式
- 设计模式 -- 行为型模式
- 行为型设计模式
- 行为型设计模式
- 设计模式-行为型
- 在Linux系统部署InfluxDB
- FZUOJ 2250 不可能弹幕结界【BFS】
- 光栅图形学算法——裁剪算法
- 设计模式-行为型软件设计模式(五)
- 前端的拖拽操作
- 设计模式-行为型软件设计模式(六)
- python创建线程
- python 闭包
- stl-map
- POJ3164_Command Network_有向图::最小树状图::朱刘算法
- xxx is not in the sudoers file.This incident will be reported.的解决方法
- Notepad++ pythonScript插件开发
- struct 和class
- InfluxDB数据备份与恢复