设计模式--状态模式(State)

本文介绍状态模式的概念及其在软件设计中的应用。状态模式允许对象在其内部状态改变时改变其行为,适用于对象行为依赖于状态的场景。通过具体示例说明如何使用状态模式来简化复杂的条件逻辑。
状态模式
概述
    定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
适用性
    1.一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为。

    2.一个操作中含有庞大的多分支的条件语句,且这些分支依赖于该对象的状态。
      这个状态通常用一个或多个枚举常量表示。
      通常,有多个操作包含这一相同的条件结构。
      State模式将每一个条件分支放入一个独立的类中。
      这使得你可以根据对象自身的情况将对象的状态作为一个对象,这一对象可以不依赖于其他对象而独立变化。
参与者
    1.Context
      定义客户感兴趣的接口。
      维护一个ConcreteState子类的实例,这个实例定义当前状态。

    2.State
      定义一个接口以封装与Context的一个特定状态相关的行为。

    3.ConcreteStatesubclasses
      每一子类实现一个与Context的一个状态相关的行为。
Example
 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值