介绍
状态模式是一种行为型设计模式,它允许对象在其内部状态发生改变时改变其行为。状态模式将对象的不同状态封装成不同的类,从而可以动态地改变对象的行为。
角色
角色 | 说明 |
---|---|
Context | 环境类,维护一个 ConcreteState 子类的实例,这个实例定义当前状态 |
State | 抽象状态类,定义一个接口以封装与 Context 的一个特定状态相关的行为 |
ConcreteState | 具体状态类,每一个子类实现一个与 Context 的一个状态相关的行为 |
角色示例
类名 | 担任角色 | 说明 |
---|---|---|
Vip | 环境类 | 会员类 |
Level | 抽象状态类 | 会员等级类 |
Level1 | 具体状态类 | 等级一 |
Level2 | 具体状态类 | 等级二 |
Level3 | 具体状态类 | 等级三 |
UML类图
代码
1 | <?php |
创建 Vip.php,内容如上。
执行
1 | $ php Vip.php |