软考------(抽象类、接口) 策略设计模式(strategy) 应用
2023-09-11 14:19:20 时间
某软件公司现欲开发一款飞机飞行模拟系统,该系统主要模拟不同种类飞机的飞行特征与起飞特征。需要模拟的飞机种类及其特征如表5-1所示。
#include <iostream> #include <string> using namespace std; class FlyBehavior { public: virtual void fly31()=0; }; class SubSonicFly:public FlyBehavior { public: void fly31() {cout<<"亚音速飞行"<<endl;} }; class SuperSonicFly:public FlyBehavior { public: void fly31() {cout<<"超音速飞行"<<endl;} }; class TakeOffBehavior { public: virtual void takeoff31()=0; }; class VerticalTakeOff:public TakeOffBehavior { public: void takeoff31() {cout<<"垂直起飞"<<endl;} }; class LongDistanceTakeOff:public TakeOffBehavior { public: void takeoff31() {cout<<"长距离起飞"<<endl;} }; class AirCraft { protected: FlyBehavior *flyBehavior; TakeOffBehavior *takeOffBehavior; public: void fly31() {flyBehavior->fly31();} void takeoff31() {takeOffBehavior->takeoff31();} }; class Helicopter:public AirCraft { public: Helicopter() { flyBehavior=new SubSonicFly(); takeOffBehavior=new VerticalTakeOff(); } ~Helicopter() { if(!flyBehavior) delete flyBehavior; if(!takeOffBehavior) delete takeOffBehavior; } }; int main() { Helicopter *x=new Helicopter(); x->fly31(); x->takeoff31(); return 0; }
运行结果:
java 代码实现:
interface FlyBehavior { public void fly31(); } class SubSonicFly implements FlyBehavior { public void fly31() {System.out.println("亚音速飞行");} } class SuperSonicFly implements FlyBehavior { public void fly31() {System.out.println("超音速飞行");} } interface TakeOffBehavior { public void takeoff31(); } class VerticalTakeOff implements TakeOffBehavior { public void takeoff31() {System.out.println("垂直起飞");} } class LongDistanceTakeOff implements TakeOffBehavior { public void takeoff31() {System.out.println("长距离起飞");} } class AirCraft { protected FlyBehavior flyBehavior; protected TakeOffBehavior takeOffBehavior; public void fly31() {flyBehavior.fly31();} public void takeoff31() {takeOffBehavior.takeoff31();} } class Helicopter extends AirCraft { public Helicopter() { flyBehavior=new SubSonicFly(); takeOffBehavior=new VerticalTakeOff(); } } public class dev { public static void main(String [] args) { Helicopter x=new Helicopter(); x.fly31(); x.takeoff31(); } }
相关文章
- Java面向对象高级--抽象类与接口的应用
- java接口的应用举例
- 枚举的其他应用:实现接口
- 面向接口编程实现不改代码实现Redis单机/集群之间的切换
- Linkis1.0用户使用文档:JAVA和SCALA调用Linkis的接口示例代码
- SAP C4C能通过接口去读nofications或者approval吗
- 通过EmbeddedServletContainerCustomizer接口调优Tomcat
- CV之FR:基于某AI公司的API接口基于人脸识别实现计算人脸相似度(计算两张人脸图片相似度进而判断否为同一个人)—利用人工智能算法判断相似度极高的国内外明星案例应用
- ML之XGBoost:XGBoost案例应用实战(原生接口实现+Scikit-learn接口实现)
- 以两种异步模型应用案例,深度解析Future接口
- 如何用AscendCL的接口开发网络模型推理场景下应用?
- 华为hrbrid接口和基于IP进行VLAN划分
- JavaSE学习总结(六)——接口、抽象类、内部类
- pytest接口自动化测试框架 | conftest.py
- 谈谈接口测试中postman环境和用例集
- 发一下接口自动化测试框架(python3+requests+excel)
- 想做好接口测试,先把这些概念搞清楚了
- 实战应用 —— ApiTesting全链路接口自动化测试框架
- 接口性能优化
- 遇到的C++ cli 转 C++ native 为C# 程序提供接口。
- Gorm框架学习---CRUD接口之查询
- Springboot怎么实现restfult风格Api接口