打字猴:1.700478363e+09
1700478363 //定义一个环境角色
1700478364
1700478365 Context context=new Context();
1700478366
1700478367 System.out.println(”====儿童的主要工作=====”);
1700478368
1700478369 context.setWork(new ChildWork());
1700478370
1700478371 context.work();
1700478372
1700478373 System.out.println(”\n====成年人的主要工作=====”);
1700478374
1700478375 context.setWork(new AdultWork());
1700478376
1700478377 context.work();
1700478378
1700478379 System.out.println(”\n====老年人的主要工作=====”);
1700478380
1700478381 context.setWork(new OldWork());
1700478382
1700478383 context.work();
1700478384
1700478385 }
1700478386
1700478387 }
1700478388
1700478389 在这里我们把每个不同的工作内容作为不同的算法,分别是孩童工作、成年人工作、老年人工作算法,然后在场景类中根据不同的年龄段匹配不同的工作内容,其运行结果如下所示:
1700478390
1700478391 ====儿童的主要工作=====
1700478392
1700478393 儿童的工作是玩耍!
1700478394
1700478395 ====成年人的主要工作=====
1700478396
1700478397 成年人的工作就是先养活自己,然后为社会做贡献!
1700478398
1700478399 ====老年人的主要工作=====
1700478400
1700478401 老年人的工作就是享受天伦之乐!
1700478402
1700478403 通过采用策略模式我们实现了“工作”这个策略的三种不同算法,算法可以自由切换,到底用哪个算法由调用者(高层模块)决定。策略模式的使用重点是算法的自由切换——老的算法退休,新的算法上台,对模块的整体功能没有非常大的改变,非常灵活。而如果想要增加一个新的算法,比如未出生婴儿的工作,只要继承WorkAlgorithm就可以了。
1700478404
1700478405
1700478406
1700478407
1700478408 设计模式之禅 32.2.2 状态模式实现人生
1700478409
1700478410 我们再来看看使用状态模式是如何实现该需求的。随着时间的变化,人的状态变化了,同时引起了人的工作行为改变,完全符合状态模式。我们来看类图,如图32-5所示。
1700478411
1700478412
[ 上一页 ]  [ :1.700478363e+09 ]  [ 下一页 ]