打字猴:1.700478463e+09
1700478463 代码清单32-27 成年人状态
1700478464
1700478465 public class AdultState extends HumanState{
1700478466
1700478467 //成年人的工作就是先养活自己,然后为社会做贡献
1700478468
1700478469 @Override
1700478470
1700478471 public void work(){
1700478472
1700478473 System.out.println(“成年人的工作就是先养活自己,然后为社会做贡献!”);
1700478474
1700478475 super.human.setState(Human.OLD_STATE);
1700478476
1700478477 }
1700478478
1700478479 }
1700478480
1700478481 代码清单32-28 老年人状态
1700478482
1700478483 public class OldState extends HumanState{
1700478484
1700478485 //老年人的工作就是享受天伦之乐
1700478486
1700478487 @Override
1700478488
1700478489 public void work(){
1700478490
1700478491 System.out.println(“老年人的工作就是享受天伦之乐!”);
1700478492
1700478493 }
1700478494
1700478495 }
1700478496
1700478497 每一个HumanState的子类都代表了一种状态,虽然实现的方法名work都相同,但是实现的内容却不同,也就是在不同的状态下行为随之改变。我们来看环境角色是如何处理行为随状态的改变而改变的,如代码清单32-29所示。
1700478498
1700478499 代码清单32-29 环境角色
1700478500
1700478501 public class Human{
1700478502
1700478503 //定义人类都具备哪些状态
1700478504
1700478505 public static final HumanState CHIILD_STATE=new ChildState();
1700478506
1700478507 public static final HumanState ADULT_STATE=new AdultState();
1700478508
1700478509 public static final HumanState OLD_STATE=new OldState();
1700478510
1700478511 //定义一个人的状态
1700478512
[ 上一页 ]  [ :1.700478463e+09 ]  [ 下一页 ]