状态模式
定义:允许一个对象在其内部状态改变时,改变它的行为
类型:行为型
适用场景:
一个对象存在多个状态(不同状态下行为不同),且状态可相互转换
优点:
将不同的状态隔离
把各种状态的转换逻辑,分布到State的子类中,减少相互间依赖
增加新的状态非常简单
缺点:
状态多的业务场景导致类数目增加,系统边复杂
相关设计模式:
状态模式和享元模式
Coding:
创建CourseVideoState类
创建CourseVideoContext类
它的set方法比较重要的
创建PlayState类
同理:
创建SpeedState类,内容和上面相同,除了下面两个方法
创建PauseState类,同理
创建StopState类,注意下面三个方法。
当前UML类图
创建Test类
运行
JSF中的应用:
引入jar包
类Lifecycle