当前位置: 首页 > news >正文

上海新建设建筑设计有限公司网站嵌入式软件开发工程师是做什么的

上海新建设建筑设计有限公司网站,嵌入式软件开发工程师是做什么的,怎样加入网销平台,wordpress访问量大链接:C 设计模式 链接:C 设计模式 - 模板方法 链接:C 设计模式 - 观察者模式 策略模式(Strategy Pattern)是一种行为设计模式,它定义了一系列算法,并将每个算法封装起来,使它们可以…

链接:C++ 设计模式
链接:C++ 设计模式 - 模板方法
链接:C++ 设计模式 - 观察者模式

策略模式(Strategy Pattern)是一种行为设计模式,它定义了一系列算法,并将每个算法封装起来,使它们可以相互替换。策略模式使得算法可以独立于使用它的客户端而变化。

1.问题分析

在开发中,经常会遇到需要在运行时选择不同算法或行为的情况。如果将这些算法直接嵌入到客户端代码中,会导致代码复杂且难以维护。策略模式通过将算法封装成独立的类,并通过接口进行调用,使得算法可以灵活地替换和扩展。

2.实现步骤

  1. 定义策略接口:定义一个接口,所有具体策略类都实现这个接口。
  2. 实现具体策略类:每个具体策略类实现策略接口,提供具体的算法实现。
  3. 上下文类:上下文类持有一个策略对象的引用,并通过策略接口调用具体的算法。

3.代码示例

以机器人的清洁任务作为示例。

3.1.策略接口

// 定义机器人任务的公共接口
class CleaningStrategy {public:virtual ~CleaningStrategy() = default;virtual void clean() = 0;
};

3.2.具体策略类

// 策略1,直线清洁
class LinearCleaningStrategy : public CleaningStrategy {public:void clean() override { std::cout << "Cleaning in a straight line." << std::endl; }
};
// 策略2,螺旋清洁
class SpiralCleaningStrategy : public CleaningStrategy {public:void clean() override { std::cout << "Cleaning in a spiral pattern." << std::endl; }
};

3.3.上下文类

// 维护一个对策略对象的引用
class CleaningRobot {public:void setStrategy(std::shared_ptr<CleaningStrategy> strategy) { this->strategy = strategy; }void performCleaning() {if (strategy) {strategy->clean();} else {std::cout << "No cleaning strategy set." << std::endl;}}private:std::shared_ptr<CleaningStrategy> strategy;
};

3.4.调用算法

int main() {// 创建一个清洁机器人对象CleaningRobot robot;// 设置直线清洁策略std::shared_ptr<CleaningStrategy> linearStrategy = std::make_shared<LinearCleaningStrategy>();robot.setStrategy(linearStrategy);robot.performCleaning();// 设置螺旋清洁策略std::shared_ptr<CleaningStrategy> spiralStrategy = std::make_shared<SpiralCleaningStrategy>();robot.setStrategy(spiralStrategy);robot.performCleaning();return 0;
}
http://www.yayakq.cn/news/929929/

相关文章:

  • 制作网页的网站推荐南通网站建设知识
  • 网站的建设与管理系统html5软件下载手机版
  • 淘宝客新增网站学生求职网站的需求分析怎么做
  • 怎样做影视网站抚州企业网站做优化
  • asp 网站权限设计山西省住房和城乡建设厅官网
  • 民制作网站价格外贸入门基本知识
  • 企业做网站的费用账务如何处理电子网站开发
  • 搭建一个网站的步骤做招商加盟网站怎么样
  • 某学校网站的安全建设方案乐清站在那儿
  • 专业网站建设平台代理商深圳外贸建站网络推广联客易
  • 烟台网站建设找人做自建房图纸去哪个网站
  • 伊犁州住房城乡建设局网站国外建站vps
  • 做网站流量优化都是什么厦门帮忙建设网站
  • seo批量建站amp for wordpress
  • 做网站多少钱啊重庆网站建设选夹夹虫
  • 公司网站在哪备案小程序自己开发
  • 网站建设中倒计时源码浙江乐清新闻今天
  • 做网站的公司哪家好一点企业网站设计请示
  • php mysql怎么编写视频网站怎么可以自己制作网站
  • pc网站设计哪家公司好wordpress 别名访问
  • 维迪wordpress找文网优化服务
  • php户外运动产品企业网站源码福建建筑人才服务中心档案
  • 网站设计的收费一个网站建设都需要什么
  • 网站建设 海南做分享衣服网站的初衷是什么意思
  • 网站怎么做h5支付宝支付相亲网站建设关键
  • 高端的网站建设公司哪家好编程软件排行榜
  • 宿迁盐城网站建设企业wordpress给页面html后缀
  • 电商详情做的最好看的网站做网站贷款
  • 杭州专业做网站的公司哪家好wordpress3教程
  • 旅游网站怎么建设凡客商城小程序制作流程