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

人脉做的最好的网站网站建设属于什么广告没

人脉做的最好的网站,网站建设属于什么广告没,全国证书统一查询证书,wordpress添加发布视频教程篇十三#xff1a;“策略模式#xff1a;选择不同算法” 设计模式是软件开发中的重要知识#xff0c;策略模式#xff08;Strategy Pattern#xff09;是一种行为型设计模式#xff0c;用于在运行时根据不同的需求选择不同的算法或行为。本文将探讨策略模式的作用和实现…篇十三“策略模式选择不同算法” 设计模式是软件开发中的重要知识策略模式Strategy Pattern是一种行为型设计模式用于在运行时根据不同的需求选择不同的算法或行为。本文将探讨策略模式的作用和实现方式并演示在C中如何应用策略模式来选择不同算法。 开始本篇文章之前先推荐一个好用的学习工具AIRIght借助于AI助手工具学习事半功倍。欢迎访问http://airight.fun/。 另外有2本不错的关于设计模式的资料分享出来与大家学习参考。 链接https://pan.baidu.com/s/1RmhQF_o1CdK8U7s5KeILog?pwdxc6d 提取码xc6d 1. 策略模式的作用 在软件开发中有时候需要根据不同的情况选择不同的算法或行为。例如一个排序算法可以有多种不同的实现而在不同的场景中需要选择不同的排序算法。策略模式提供了一种灵活的方式来管理算法族使得它们可以互相替换而不影响客户端。 2. 策略模式的实现方式 策略模式通过将每种算法封装成一个具体的策略类然后将这些策略类继承自一个共同的抽象策略类。客户端代码通过调用抽象策略类的接口来使用不同的算法而具体的算法实现则由具体策略类来提供。这样客户端和具体的算法实现之间实现了解耦。 3. 在C中使用策略模式 a. 定义抽象策略类 // Strategy.h class Strategy { public:virtual void doAlgorithm() const 0; };b. 定义具体策略类 // ConcreteStrategies.h #include iostreamclass ConcreteStrategyA : public Strategy { public:void doAlgorithm() const override {std::cout Using Strategy A std::endl;// 这里是具体的算法实现A} };class ConcreteStrategyB : public Strategy { public:void doAlgorithm() const override {std::cout Using Strategy B std::endl;// 这里是具体的算法实现B} };class ConcreteStrategyC : public Strategy { public:void doAlgorithm() const override {std::cout Using Strategy C std::endl;// 这里是具体的算法实现C} };c. 定义上下文类 // Context.h #include Strategy.hclass Context { public:Context(Strategy* strategy) : strategy_(strategy) {}void setStrategy(Strategy* strategy) {strategy_ strategy;}void executeAlgorithm() const {if (strategy_) {strategy_-doAlgorithm();}}private:Strategy* strategy_; };d. 使用策略模式 // main.cpp #include Context.h #include ConcreteStrategies.hint main() {ConcreteStrategyA strategyA;ConcreteStrategyB strategyB;ConcreteStrategyC strategyC;Context context(strategyA);context.executeAlgorithm(); // 输出Using Strategy Acontext.setStrategy(strategyB);context.executeAlgorithm(); // 输出Using Strategy Bcontext.setStrategy(strategyC);context.executeAlgorithm(); // 输出Using Strategy Creturn 0; }在上述示例中我们首先定义了一个抽象策略类Strategy其中包含了算法的抽象接口doAlgorithm()。然后我们创建了具体的策略类ConcreteStrategyA、ConcreteStrategyB和ConcreteStrategyC分别实现了不同的算法。 接着我们定义了上下文类Context其中包含了一个指向抽象策略类的指针。通过在上下文类中设置具体的策略对象客户端可以在运行时选择不同的算法。在上下文类的成员函数executeAlgorithm()中我们通过调用策略对象的接口来执行具体的算法。 4. 策略模式的代码解析 策略模式通过封装每种算法成为独立的策略类并使它们实现相同的抽象接口从而实现了客户端和具体算法的解耦。在使用策略模式时客户端代码只需要知道如何使用上下文类并在需要时设置不同的策略对象即可而无需关注具体的算法实现。 5. 注意事项 在使用策略模式时需要注意以下几点 确定抽象策略类在设计策略模式时需要确定抽象策略类中包含哪些抽象接口以及每个接口的作用。策略选择根据不同的业务需求选择合适的策略实现并将其设置给上下文类。需要根据实际需求选择合适的策略从而达到最佳的性能和效果。 6. 总结 策略模式是一种重要的设计模式它允许在运行时根据不同的需求选择不同的算法或行为。在C中我们可以通过定义抽象策略类、具体策略类和上下文类来应用策略模式。策略模式可以提高代码的灵活性和可维护性从而更好地应对变化的需求。 希望本文能够帮助您深入理解策略模式的作用和实现方式并通过C的示例代码演示了如何应用策略模式来选择不同算法。设计模式是软件开发中的重要知识掌握不同的设计模式有助于提 高代码质量、可维护性和可扩展性。在后续的专栏文章中我们将继续介绍更多设计模式的知识包括原理、详细介绍、示例代码和代码解析帮助您深入学习和应用设计模式。 参考文献 Gamma, E., Helm, R., Johnson, R., Vlissides, J. (1994). Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional.C Core Guidelines: https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines 感谢您的阅读欢迎一起探讨共同进步推荐大家使用学习助手AIRight来解答学习过程中的问题访问链接http://airight.fun/
http://www.w-s-a.com/news/951387/

相关文章:

  • 资讯cms网站有那些餐饮品牌策划设计公司
  • 网站策划选题网站布局优化
  • 网站建设3000字wordpress 微信 主题制作
  • 代做寄生虫网站网站菜单效果
  • 网站备案为什么这么慢目录更新 wordpress
  • 视频在线制作网站Wordpress 外链图片6
  • 网站域名后缀有什么用网站建设的投资预算怎么写
  • 化妆品网站建设网站惠州网站关键字优化
  • 保定网站制作企业下载天眼查企业查询官网
  • 中山企业网站建设公司制作一个景点的网站
  • 连云港集团网站建设株洲建设网站
  • 做运动鞋评价的网站南山做网站联系电话
  • 网站开发公众号开发海南做公司网站
  • 论企业网站建设的必要性微信小程序做一个多少钱
  • 网站制作价格是多少元上海市中小企业服务中心
  • 网站建设管理人员济宁网站建设top
  • 桂林网站建设桂林网站的元素有哪些
  • 广东网站开发推荐网页制作个人简历模板教程
  • e建网保定百度seo公司
  • 网站建设中html代码网络培训课堂app
  • 无锡做网站seo自己做的网站如何上传网上
  • 园林景观网站模板小白怎么做跨境电商
  • 找第三方做网站 需要注意企业网站带数据库
  • 北京南站到北京站flash网站制作单选框和复选框ui组件
  • 网站建设核电集团网站设计案例
  • 宝塔做的网站能不能访问上海的广告公司网站建设
  • 网站会员系统方案新能源网站建设哪家好
  • 全球网站域名域名被墙查询
  • 做期货看资讯什么网站好哈尔滨网站设计联系方式
  • 建站宝盒免费下载上海网论坛网址