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

做微信的网站有哪些重庆云阳网站建设公司推荐

做微信的网站有哪些,重庆云阳网站建设公司推荐,论坛建站教程,芜湖建设厅官方网站策略模式的思想 策略模式#xff08;Strategy Pattern#xff09;是一种行为型设计模式#xff0c;它允许在运行时选择算法的行为。策略模式的核心思想是将不同的算法封装成独立的策略类#xff0c;并使这些策略类可以互相替换#xff0c;从而使客户端代码不依赖于具体的算…策略模式的思想 策略模式Strategy Pattern是一种行为型设计模式它允许在运行时选择算法的行为。策略模式的核心思想是将不同的算法封装成独立的策略类并使这些策略类可以互相替换从而使客户端代码不依赖于具体的算法增加了代码的灵活性和可维护性 策略模式的组成部份 策略接口Strategy Interface定义一组算法的通用接口通常包含一个或多个方法这些方法表示不同策略所执行的操作。 具体策略类Concrete Strategies实现策略接口提供具体的算法实现。每个具体策略类代表一种算法或策略的具体实现。 环境类Context持有一个策略对象的引用并提供方法来执行算法。环境类通常包含一个设置策略的方法以及使用策略来执行操作的方法 策略模式的优点 通过动态切换策略对象可以在运行时适应不同的需求提高了代码的灵活性策略模式有助于减少代码重复因为多个算法可以共享相同的接口和通用行为可以轻松添加新的算法或策略无需修改现有的客户端代码符合开放封闭原则。提高了代码的可维护性因为每个算法都有自己的类易于理解和维护 例子  以支付为例不同人进行的支付方式可能不同定义一个策略类并将pay接口定义为虚函数如果想要扩展支付方式直接定义新的类并继承策略类重写pay函数即可 #include iostream// 策略接口 class PaymentStrategy { public:virtual void pay(int amount) 0; };// 具体策略类1信用卡支付 class CreditCardPayment : public PaymentStrategy { private:std::string cardNumber;std::string name;public:CreditCardPayment(const std::string cardNumber, const std::string name): cardNumber(cardNumber), name(name) {}void pay(int amount) override {std::cout amount paid using credit card. std::endl;// 具体的支付逻辑} };// 具体策略类2PayPal支付 class PayPalPayment : public PaymentStrategy { private:std::string email;public:PayPalPayment(const std::string email): email(email) {}void pay(int amount) override {std::cout amount paid using PayPal. std::endl;// 具体的支付逻辑} };// 环境类 class ShoppingCart { private:PaymentStrategy* paymentStrategy;public:void setPaymentStrategy(PaymentStrategy* strategy) {paymentStrategy strategy;}void checkout(int amount) {if (paymentStrategy) {paymentStrategy-pay(amount);} else {std::cout Please set a payment strategy before checking out. std::endl;}} };int main() {// 创建环境对象ShoppingCart cart;// 设置具体策略cart.setPaymentStrategy(new CreditCardPayment(1234-5678-9876-5432, John Doe));// 执行支付操作cart.checkout(100);// 切换策略cart.setPaymentStrategy(new PayPalPayment(johnexample.com));// 再次执行支付操作cart.checkout(50);return 0; }
http://www.zqtcl.cn/news/419068/

相关文章:

  • 用自己的电脑建网站兴义网站建设
  • 保定医疗网站建设公司wordpress 视频管理 主题
  • php做网站半成品网页设计作业怎么交
  • 郑州网站建设培训学校公众号投票怎么制作
  • 韩国设计交流网站网站设计网页配色
  • 线上设计师网站网络科技公司排名
  • 安徽建设厅网站网址品牌营销ppt
  • 用iis做的网站怎么更改端口南京汤山建设银行网站
  • 威海哪有网站建设十大网页制作工具
  • 上海专业网站建设公司合肥网站建站
  • 怎样将自己做的网站给别人看做平台网站一般有php还是js
  • 做企业网站一般要多少钱WordPress数据库搜索
  • wordpress建立好的网站app的开发流程是什么
  • 工作室网站WordPress文章图片采集插件
  • 青岛网站开发学校wordpress页面样板
  • 校级特色专业建设网站公司网站建设需要些什么要求
  • 嵌入式开发软件有哪些上海谷歌seo
  • 国际学校网站如何建设wordpress登入可见
  • 如何做好网站内链网站开发平台开发
  • 安徽省建设厅网站怎么进不去2022年国内重要新闻
  • 河北建设机械协会网站wordpress怎么做两个语言网站
  • 美容网站模版在线动画手机网站模板
  • jsp做的婚恋网站在谷歌上做英文网站
  • 北京教育学会网站建设昆明seo公司网站
  • 免费域名试用注册网站google搜索关键词热度
  • 温州建设小学网站高中资料网站免费
  • 室内设计网站官网大全电子商务网站后台核心管理
  • 网站建设报价图片欣赏福州网站建设报价
  • 网站推广基本方法是文创产品设计稿
  • 厦门网站制作公司推荐作文网投稿网站