1700478513
private HumanState state;
1700478514
1700478515
//设置一个状态
1700478516
1700478517
public void setState(HumanState_state){
1700478518
1700478519
this.state=_state;
1700478520
1700478521
this.state.setHuman(this);
1700478522
1700478523
}
1700478524
1700478525
//人类的工作
1700478526
1700478527
public void work(){
1700478528
1700478529
this.state.work();
1700478530
1700478531
}
1700478532
1700478533
}
1700478534
1700478535
定义一个Human类代表人类,也就是状态模式中的环境角色,每个人都会经历从孩童到成年人再到老年人这样一个状态过渡(当然了,老顽童周伯通的情况我们就没有考虑进来),随着状态的改变,行为也改变。我们来看场景类,如代码清单32-30所示。
1700478536
1700478537
代码清单32-30 场景类
1700478538
1700478539
public class Client{
1700478540
1700478541
public static void main(String[]args){
1700478542
1700478543
//定义一个普通的人
1700478544
1700478545
Human human=new Human();
1700478546
1700478547
//设置一个人的初始状态
1700478548
1700478549
human.setState(new ChildState());
1700478550
1700478551
System.out.println(”====儿童的主要工作=====”);
1700478552
1700478553
human.work();
1700478554
1700478555
System.out.println(”\n====成年人的主要工作=====”);
1700478556
1700478557
human.work();
1700478558
1700478559
System.out.println(”\n====老年人的主要工作=====”);
1700478560
1700478561
human.work();
1700478562
[
上一页 ]
[ :1.700478513e+09 ]
[
下一页 ]