策略模式代码.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
策略模式代码

示例代码部分: 策略接口: public interface Strategy { void strategy(); } 策略1、2、3实现: public class Strategy1 implements Strategy{ @Override public void strategy() { // TODO Auto-generated method stub System.out.println(使用了策略1); } } public class Strategy2 implements Strategy{ @Override public void strategy() { // TODO Auto-generated method stub System.out.println(使用了策略2); } } public class Strategy3 implements Strategy { @Override public void strategy() { // TODO Auto-generated method stub System.out.println(使用了策略3); } } 环境及调用部分: public class Context { private Strategy myStrategy=null; public Strategy getMyStrategy() { return myStrategy; } public void setMyStrategy(Strategy myStrategy) { this.myStrategy = myStrategy; } public void run() { this.myStrategy.strategy(); } public static void main(String[] args) { Context newContext=new Context(); //使用了策略1 newContext.setMyStrategy(new Strategy1()); newContext.run(); //使用了策略2 newContext.setMyStrategy(new Strategy2()); newContext.run(); //使用了策略3 newContext.setMyStrategy(new Strategy3()); newContext.run(); } } 作业: 用策略模式实现以下场景的需求: 春节将近,某人开始选择回家的交通方案,现有机票、动车票、快车票三种票可选。若机票比动车票便宜,则购买机票,否则购买快车票,快车票不足,则购买动车票。决策逻辑和接口已给出,请按策略模式完善各类。 接口: public interface Strategy { void strategy(); } 三个策略类分别是AirTickets、TrainK、TrainD,待实现。 主调用: import java.util.Random; public class Context { //环境所需其他成员及方法,待补充 public void run(){ ... } public static void main(String[] args) { Context newContext=new Context(); Random r=new Random(); int airFare=Math.abs(r.nextInt()%1000)+500; int train_DFare=Math.abs(r.nextInt()%500)+600; int train_KFare=Math.abs(r.nextInt()%400)+500; int train_KTickets=Math.abs(r.nextInt()%3); System.out.println(机票:+airFare+\n动车票价+train_DFare+\n快车票价+train_KFare+\n快车余票数+train_KTickets); if(airFare=train_KFare||(airFare=train_DFaretrain_KTickets==0)) //使用机票,待补充 else if(train_KTickets==0) //使用快车,待补充 else //使用动车,待补充 newContext.run(); } } 实例结果(控制台): 机票:801

文档评论(0)

magui + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8140007116000003

1亿VIP精品文档

相关文档