打字猴:1.700478513e+09
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 ]  [ 下一页 ]