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

如何快速建立一个网站甘肃做网站的公司

如何快速建立一个网站,甘肃做网站的公司,珠宝店网站项目网页设计,网站改版重新备案目录 一、简介1. 含义2. 特点 二、实现1. 策略接口#xff08;Strategy Interface#xff09;2. 具体策略类#xff08;Concrete Strategies#xff09;3. 上下文类#xff08;Context#xff09;4. 使用策略模式 三、总结如果这篇文章对你有所帮助#xff0c;渴望获得你… 目录 一、简介1. 含义2. 特点 二、实现1. 策略接口Strategy Interface2. 具体策略类Concrete Strategies3. 上下文类Context4. 使用策略模式 三、总结如果这篇文章对你有所帮助渴望获得你的一个点赞 一、简介 1. 含义 策略模式Strategy Pattern是一种行为设计模式它定义了一系列算法将每个算法封装到不同的类中并且使它们可以相互替换。策略模式允许客户端代码选择算法的实现而不是将算法的选择硬编码在客户端代码中。 2. 特点 优点 算法可以自由切换。避免使用多重条件判断。扩展性良好。 缺点 策略类会增多。所有策略类都需要对外暴露。 二、实现 ​ 策略模式中首先定义一个抽象基类或接口它代表着所有可能被应用的算法的共性。然后我们编写具体的子类实现这个接口并实现各自的算法函数。最后我们编写一个环境类或上下文类该类持有一个指向抽象基类或接口类型的指针客户端可以传递不同的具体算法对象给环境类或上下文类从而动态地改变其行为。 以下是策略模式的关键组成部分 1. 策略接口Strategy Interface 策略的抽象基类或者接口该类定义了所有可能被应用的算法的共性。定义抽象的函数算法让继承的子类实现。 // 策略接口 class Strategy { public:virtual void execute() const 0; };2. 具体策略类Concrete Strategies 它们继承自 Strategy 类并实现了各自的算法函数即函数的具体功能的实现。 // 具体策略类 A class ConcreteStrategyA : public Strategy { public:void execute() const override {std::cout 执行策略 A std::endl;} };// 具体策略类 B class ConcreteStrategyB : public Strategy { public:void execute() const override {std::cout 执行策略 B std::endl;} };3. 上下文类Context 维持一个对策略对象的引用可以在运行时切换不同的策略。该类持有一个指向抽象基类或接口类型的指针客户端可以传递不同的具体算法对象给环境类从而动态地改变其行为多态。上下文类有一个executeStrategy()方法该方法会调用持有的策略对象的 execute() 函数来执行具体算法。 // 上下文类 class Context { private:Strategy* strategy;public:Context(Strategy* strategy) : strategy(strategy) {}void setStrategy(Strategy* newStrategy) {strategy newStrategy;}void executeStrategy() const {strategy-execute();} };使用策略模式的主要优势在于它允许在运行时选择算法而不是在编译时进行硬编码。这使得系统更加灵活易于扩展同时也符合开闭原则。 4. 使用策略模式 main() {ConcreteStrategyA strategyA;ConcreteStrategyB strategyB;Context context(strategyA);context.executeStrategy(); // 执行策略 Acontext.setStrategy(strategyB);context.executeStrategy(); // 执行策略 Breturn 0; }上述例子中Context 类可以在运行时切换不同的策略而不需要修改客户端代码。这符合策略模式的核心思想。 三、总结 ​ 策略模式是对象行为型模式 它关注行为和算法的封装 。其优势在于可以将算法的实现和使用分离它定义一系列的算法把每一个算法封装起来并且使它们可相互替换。方便客户端动态地替换策略对象并且可以避免使用多重条件语句来选择不同的算法实现。使得算法可独立于使用它的客户而变化。即可以通过直接调用基类的方式完成赋值。 如果这篇文章对你有所帮助渴望获得你的一个点赞
http://www.w-s-a.com/news/640841/

相关文章:

  • 哪类小网站容易做h5页面制作代码
  • 北京网站建设公司华网百度热搜seo
  • 小清新博客网站中山做网站公司
  • 美团做团购网站如何新建自己的网站
  • 安卓软件制作网站电子商务网站建设实训总结报告
  • 肃宁网站制作价格外国设计师素材网站
  • 自已建网站用jsp做的可运行的网站
  • 外贸建站代理网站建设设计公司哪家好
  • 普升高端品牌网站建设台州中兴建设咨询有限公司网站
  • 模板演示网站移动网站开发公司
  • 网站管理办法制度公司招聘信息
  • 宜昌市建设监理协会网站免备案免费域名
  • 河北省建设银行网站首页备案号怎么放到网站
  • 做电脑网站用什么软件有哪些wordpress版权修改
  • 加强部门网站建设工作wordpress文章页横幅
  • 中英网站怎么做wordpress本地音乐
  • 万网提供的网站建设服务的具体项目祥云平台网站建设
  • ftp网站怎么看后台的代码网站 制作软件
  • 网站开发软件教程网站tag 怎么实现
  • 中国建设监理协会化工监理协会网站彩票站自己做网站吗
  • 170个可带链接锚文本外链的网站论坛微信上如何创建小程序
  • 用js来做网站亳州建设局网站
  • 做网站的公司利润多少呢纺织厂网站模板
  • 网页设计构建的基本流程宜宾seo网站建设
  • 西安网站开发公司价格保定徐水网站建设
  • 学做川菜下什么网站软件著作权和专利的区别
  • 百度网站标题东莞外包公司有哪些
  • 织梦增加网站英文名称网页界面设计特点
  • 企业如何进行网站建设棋牌代理平台
  • 韩国做美食网站有哪些seo优化在线诊断