| 意图 | 行为随状态变化、迁移显式 |
|---|---|
| 对比 | 枚举+switch:分支散落、迁移难追 |
| 迁移 | 状态对象返回下一个状态 |
形态示意
形态示意
class Order {
private OrderState state = new DraftState();
void pay() { state = state.pay(this); }
void ship() { state = state.ship(this); }
}对象行为随内部状态改变:把每个状态封装为类,状态迁移显式化;相比状态字段 + switch,状态类让「迁移表」可读、单状态逻辑可测。
| 意图 | 行为随状态变化、迁移显式 |
|---|---|
| 对比 | 枚举+switch:分支散落、迁移难追 |
| 迁移 | 状态对象返回下一个状态 |
class Order {
private OrderState state = new DraftState();
void pay() { state = state.pay(this); }
void ship() { state = state.ship(this); }
}