dart_in_action/33_design_pattern_state.dart

65 lines
1.3 KiB
Dart
Raw Normal View History

2019-03-27 10:55:27 +08:00
/**
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";
}
}