软件设计-策略模式

技术软件设计-策略模式 软件设计-策略模式旅行方式的选择旅游的出行方式有乘坐飞机旅行、乘火车旅行和自行车游,不同的旅游方式有不同的实现过程,客户可以根据自己的需要选择一种合适的旅行方式。类图Javapa

软件设计-策略模式

旅行方式的选择

旅游的出行方式有乘坐飞机旅行、乘火车旅行和自行车游,不同的旅游方式有不同的实现过程,客户可以根据自己的需要选择一种合适的旅行方式。

类图

Java 语言(一种计算机语言,尤用于创建网站)语言(一种计算机语言,尤用于创建网站)

包rjsj.no23

公共课骑自行车策略实施TravelStrategy{

@覆盖

公共空间旅行()

System.out.println('骑自行车旅游');

}

}

包rjsj.no23

公共类客户端{

公共静态void main(String[]参数){ 0

旅行者=新旅行者();

System.out.println('旅游开始!');

出行策略出行策略=新列车策略();

旅行者。settravelstrategy(travelStrategy);

旅行者。旅行();

系统。出去。println(* * * * * * * * * * * * * * * * * * * * * * * * *);

System.out.println('旅游开始!');

出行策略=新的AirPlanet策略();

旅行者。settravelstrategy(travelStrategy);

旅行者。旅行();

系统。出去。println(* * * * * * * * * * * * * * * * * * * * * * * * *);

System.out.println('旅游开始!');

出行策略=new dicyclestreatgy();

旅行者。settravelstrategy(travelStrategy);

旅行者。旅行();

系统。出去。println(* * * * * * * * * * * * * * * * * * * * * * * * *);

}

}

包rjsj.no23

公开课培训战略实施TravelStrategy{

@覆盖

公共空间旅行()

System.out.println('坐火车旅游');

}

}

包rjsj.no23

公共级旅行者{

私人旅行战略旅行战略;

公共空间设置旅行策略(TravelStrategy TravelStrategy){ 0

这个。出行策略=出行策略;

}

公共空间旅行()

旅行策略。旅行();

}

}

包rjsj.no23

公共界面TravelStrategy {

虚空旅行();

}

包rjsj.no23

公共类飞机战略实施TravelStrategy{

@覆盖

公共空间旅行()

System.out.println('乘坐飞机旅游');

}

}

C

#包括牡蛎

使用命名空间标准;

class TravelStrategy {

公众号:

虚空行程()=0;

};

人员类别{

私人:

TravelStrategy *战略;

公众号:

void setStrategy(旅行策略*策略){ 0

这个策略=策略;

}

无效行程(){ 0

这战略-旅行();

}

};

班级培训战略:公共旅行战略{

公众号:

无效行程(){ 0

cout '坐火车恩德尔

}

};

class DicycleStrategy :公共出行策略{

公众号:

无效行程(){ 0

cout '骑自行车恩德尔

}

};

飞机战略:级公共旅行策略{

公众号:

无效行程(){ 0

cout '坐飞机恩德尔

}

};

int main(){ 0

Person * pr=new Person();

cout '旅游开始,请选择交通工具:' endl

出行策略*策略=新列车策略();

pr-setStrategy(战略);

公关旅行();

cout ' * * * * * * * * * * * * * * * endl

cout '旅游开始,请选择交通工具:' endl

出行策略*策略2=new dicyclestreatgy();

pr-setStrategy(策略2);

公关旅行();

cout ' * * * * * * * * * * * * * * * endl

cout '旅游开始,请选择交通工具:' endl

出行策略*策略3=新AirPlanet策略();

pr-setStrategy(策略3);

公关旅行();

}

运行结果:

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/145043.html

(0)

相关推荐

  • Oracle中检查数据块损坏的工具有哪些

    技术Oracle中检查数据块损坏的工具有哪些本篇内容主要讲解“Oracle中检查数据块损坏的工具有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle中检查数据块损

    攻略 2021年11月9日
  • 怎么对Python程序学习过程进行总结

    技术怎么对Python程序学习过程进行总结今天就跟大家聊聊有关怎么对Python程序学习过程进行总结,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。你需要注意一些问

    攻略 2021年10月27日
  • kafka分区数量设置多少合适(kafka 分区个数与集群大小的关系)

    技术如何为Kafka集群确定合适的分区数以及分区数过多带来的弊端如何为Kafka集群确定合适的分区数以及分区数过多带来的弊端,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到

    攻略 2021年12月15日
  • PHP7常用新特性是什么

    技术PHP7常用新特性是什么本篇文章给大家分享的是有关PHP7常用新特性是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1.PHP 标量类型与返回值类型

    攻略 2021年10月19日
  • flinkstream flinksql 优缺点(flink sql和datastream的区别)

    技术如何正确使用FlinkStreamSQL本篇文章为大家展示了如何正确使用FlinkStreamSQL,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、前期准备项目路径:htt

    攻略 2021年12月23日
  • throw和throws有什么不同

    技术throw和throws有什么不同 throw和throws有什么不同共同点:
    两者在抛出异常时,他们只管把异常抛出,并不处理异常,由调用者负责处理。区别(1)throw语句总是出现在方法体里面,用

    礼包 2021年11月5日