状态模式的定义
定义: 当一个对象内在状态改变时允许其改变行为, 这个对象看起来像改变了其类
通俗的说, 就是一个事物有不同的状态,在不同状态下执行各个方法时有不同的表现, 将每个状态都封装成一个类,..., 通俗的说, 就是本状态下要做的事情, 以及本状态如何过渡到其他状态
Context 环境角色: 定义客户端需要的接口, 并且负责具体状态的切换
抽象状态角色代码:
?...这样就实现了在不同状态下的切换
状态模式的应用
状态模式的优点:
结构清晰....避免了过多的 switch...case 或者 if...else 语句的使用, 避免了程序的复杂性, 提高系统的可维护性
遵循设计原则....很好的体现了开闭原则和单一职责原则, 眉哥哥状态都是一个子类, 你要增加状态就要增加子类, 要修改状态, 只修改一个子类即可
封装性非常好.