设计模式之状态模式(State Pattern)

概述

The State pattern lets an object alter its behaviour when its internal state changes. This pattern is similar to the strategy pattern, but in this case it is decided internally how the objects behaves.

状态模式是指当对象内部的某个状态改变后会改变其相应的行为。比如,我把这个Context的状态改为A,这个Context的handle是handleA,如果我把Context的状态改为B,这个Context的handle是handleB.

状态(State)模式的定义:对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。

本文类图

本文类图

代码

内部状态变更导致context行为会改变
Context行为改变的原因在于持有state的引用

测试结果

测试结果

参考资料

参考代码,参考文档,本文代码GitHub地址

你可能感兴趣的:(设计模式之状态模式(State Pattern))