加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
33_design_pattern_state.dart 1.34 KB
一键复制 编辑 原始数据 按行查看 历史
ryanpenn 提交于 2019-03-27 10:55 . dart programming
/**
状态模式(State Pattern)
意图:允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类。
主要解决:对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关行为。
何时使用:代码中包含大量与对象状态有关的条件语句。
如何解决:将各种具体的状态类抽象出来。
*/
main(List<String> args) {
Context context = Context();
StartState startState = StartState();
startState.doAction(context);
print(context.state);
StopState stopState = new StopState();
stopState.doAction(context);
print(context.state);
}
//////////////////////////////////////////////////////////////////
///
/// 创建一个接口
///
abstract class State {
void doAction(Context context);
}
///
/// 创建 Context 类
///
class Context {
State state = null;
Context();
}
///
/// 创建实现接口的实体类
///
class StartState implements State {
void doAction(Context context) {
print("Player is in start state");
context.state = this;
}
@override
String toString() {
return "Start State";
}
}
class StopState implements State {
void doAction(Context context) {
print("Player is in stop state");
context.state = this;
}
@override
String toString() {
return "Stop State";
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化