State,即为状态。
在编程过程中,会遇到多种情况的判断情境,一般会使用多个if-else分支,或使用switch语句,而这样会导致代码变得臃肿繁杂,若需修改、增添、删除某个情况,则会需要修改许多处代码。
将每一种情况分离出来,设计一个状态(State)接口,每一种情况便是这个接口的一种实现类,再在原来的if-else处维护一个状态的实例,通过状态接口实现情况的判定与相关操作的实现,修改、增添、删除某个情况时,只需修改、增添、删除某个实现类即可,所需改动不多。同时,使得整个代码的结构清晰,易于把握。