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

网站制作方案费用电脑wordpress

网站制作方案费用,电脑wordpress,旅游网站开发的背景,广州电商网站开发策略模式介绍 文章目录 策略模式介绍C 代码示例 策略模式是一种行为设计模式#xff0c;它允许在运行时选择算法的行为。该模式将算法的定义和使用分离开来#xff0c;使得算法可以独立于使用它的客户端而变化#xff0c;提高了代码的灵活性和可维护性。 其主要包含以下几个…策略模式介绍 文章目录 策略模式介绍C 代码示例 策略模式是一种行为设计模式它允许在运行时选择算法的行为。该模式将算法的定义和使用分离开来使得算法可以独立于使用它的客户端而变化提高了代码的灵活性和可维护性。 其主要包含以下几个角色 抽象策略Strategy定义了一个公共接口用于所有具体策略类实现这个接口声明了算法的方法签名客户端通过这个接口来调用具体的算法。具体策略Concrete Strategy实现了抽象策略接口提供具体的算法实现逻辑。不同的具体策略类实现了不同的算法可以根据具体需求进行替换。上下文Context持有一个对抽象策略的引用通过这个引用调用具体策略的算法方法。上下文类负责与客户端交互并根据情况决定使用哪个具体策略。 使用策略模式的好处在于 可扩展性强当需要添加新的算法时只需创建新的具体策略类实现抽象策略接口即可不需要修改现有代码的核心逻辑符合开闭原则对扩展开放对修改关闭。代码复用性高具体策略类可以在不同的上下文中被复用只要符合抽象策略定义的接口规范就行。便于维护和测试由于每个算法都独立在具体策略类中实现代码结构清晰便于单独对各个算法进行维护和测试。 C 代码示例 以下是一个简单的用 C 实现的策略模式示例模拟一个电商系统中不同的折扣策略计算商品最终价格的场景。 #include iostream #include string// 抽象策略类定义折扣计算的接口 class DiscountStrategy { public:virtual double calculateDiscount(double price) 0;virtual ~DiscountStrategy() {} };// 具体策略类1满减折扣策略 class FullReductionStrategy : public DiscountStrategy { public:double calculateDiscount(double price) override {if (price 200) {return price * 0.2; // 满200减20%}return 0;} };// 具体策略类2固定折扣策略 class FixedDiscountStrategy : public DiscountStrategy { public:double calculateDiscount(double price) override {return price * 0.1; // 固定打9折} };// 上下文类持有折扣策略引用并执行折扣计算 class ShoppingCart { public:ShoppingCart(DiscountStrategy* strategy) : m_strategy(strategy) {}void setDiscountStrategy(DiscountStrategy* strategy) {m_strategy strategy;}double calculateFinalPrice(double price) {double discount m_strategy-calculateDiscount(price);return price - discount;}private:DiscountStrategy* m_strategy; };int main() {// 创建具体策略对象FullReductionStrategy fullReduction;FixedDiscountStrategy fixedDiscount;// 创建上下文对象并传入具体策略对象ShoppingCart cart1(fullReduction);ShoppingCart cart2(fixedDiscount);double price 300;std::cout 使用满减策略商品价格为 price 时最终价格: cart1.calculateFinalPrice(price) std::endl;std::cout 使用固定折扣策略商品价格为 price 时最终价格: cart2.calculateFinalPrice(price) std::endl;// 更换策略并重新计算价格cart1.setDiscountStrategy(fixedDiscount);std::cout 更换为固定折扣策略后商品价格为 price 时最终价格: cart1.calculateFinalPrice(price) std::endl;return 0; }下面对上述代码进行详细解释 抽象策略类 DiscountStrategy 它定义了一个纯虚函数 calculateDiscount这个函数接收商品价格作为参数用于计算折扣金额返回值是折扣的具体数值以价格的比例形式体现。纯虚函数的存在使得这个类成为抽象类不能直接实例化必须由具体的子类来实现其 calculateDiscount 方法。虚析构函数 ~DiscountStrategy() 的定义是为了保证在通过基类指针删除派生类对象时能够正确调用派生类的析构函数避免内存泄漏等问题遵循了多态情况下正确析构的原则。 具体策略类 FullReductionStrategy实现了 DiscountStrategy 抽象策略接口在 calculateDiscount 方法中定义了满减的折扣逻辑即当商品价格大于等于200时给予20%的折扣否则没有折扣返回0。FixedDiscountStrategy同样实现了抽象接口其折扣逻辑是固定给予商品价格10%的折扣无论商品价格具体是多少。 上下文类 ShoppingCart 它有一个私有成员变量 m_strategy类型是指向 DiscountStrategy 抽象策略类的指针通过构造函数或者 setDiscountStrategy 方法来初始化或更换这个指针所指向的具体策略对象。calculateFinalPrice 方法用于根据当前持有的具体策略计算商品的最终价格它先调用 m_strategy 指向的具体策略对象的 calculateDiscount 方法获取折扣金额然后用商品原价减去折扣金额得到最终价格。 main 函数部分 首先创建了两个具体策略类的对象 fullReduction满减策略和 fixedDiscount固定折扣策略。接着创建了两个 ShoppingCart 上下文对象 cart1 和 cart2并分别在构造函数中传入不同的具体策略对象这样 cart1 初始使用满减策略cart2 使用固定折扣策略。然后通过调用 calculateFinalPrice 方法分别计算并展示了商品价格为300时不同策略下的最终价格。之后又通过 cart1 的 setDiscountStrategy 方法将其使用的策略更换为固定折扣策略并再次计算和展示了最终价格体现了策略模式可以在运行时灵活切换算法策略的特点。 通过这个示例可以看到策略模式将不同的折扣算法封装在各自的具体策略类中而 ShoppingCart 上下文类只需要关心抽象策略接口根据具体情况使用不同的具体策略来计算最终价格使得代码结构清晰易于扩展和维护。例如如果后续要添加一个新的折扣策略如会员专享折扣策略等只需要创建一个新的具体策略类实现 DiscountStrategy 接口并在需要的地方如 ShoppingCart 上下文对象中使用这个新策略即可不需要修改原有的核心代码逻辑。
http://www.w-s-a.com/news/435692/

相关文章:

  • ppp模式在网站建设的南昌专业做网站公司哪家好
  • 泰安网站建设制作电话号码百度sem竞价托管公司
  • 苏网站建设网页设计和网页美工
  • 跨境电商平台网站广州地铁站路线图
  • 吉林省交通建设集团有限公司网站企业网站推广的策略有哪些
  • 网站内链怎么做更好郑州网站建设哪家便宜
  • 建设大型购物网站运城哪里做网站
  • php企业网站通讯录管理系统做网站在线支付系统多少钱?
  • 怎么区分用vs和dw做的网站贝贝网网站开发背景
  • 无锡网站建设制作建设信息网查询
  • 彩票系统网站开发建设人力资源网官网
  • 有专门下载地图做方案的网站吗网站建设平台计划书
  • 网站闭站保护10个著名摄影网站
  • 安徽省建设工程信息网官网首页网站关键词排名优化工具
  • 深圳网站建设 百业网站专题教程
  • 公司seo是指什么意思如何来做网站优化
  • 化妆品网站建设平台的分析湖南网站搜索排名优化电话
  • 织梦网站修改教程视频教程管理类网站开发价格
  • 如何让新网站快速收录企业建站的作用是什么
  • 在线制作简历的网站做的最好的微电影网站
  • h5制作的网站网络游戏投诉平台
  • 做外贸网站好还是内贸网站好珠海新盈科技有限公 网站建设
  • php和网站开发网络软营销
  • 大型做网站的公司有哪些wordpress注册链接无效
  • 推荐门户网站建设公司网站开发移动端
  • 公司网站的栏目设置成都十大监理公司排名
  • 安溪住房和城乡建设网站关岭县建设局网站
  • 网站域名注销备案徐州房产网
  • 筑聘网windows优化大师自动安装
  • 龙华高端网站设计门户网站建设方案公司