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

网站做跳转会有什么影响网站建设申报书

网站做跳转会有什么影响,网站建设申报书,深圳 网站开发公司电话,网站模板如何用目录 总结部分:策略模式的优点部分代码部分 总结部分: 策略模式和简单工厂模式很像 区别在于 简单工厂模式 需求的是由工程创造的类 去给客户直接答案 而策略模式在于 我有主体 一个主体 根据策略的不同来进行不同的计算 我的主体就负责收钱 然后调度相…

目录

    • 总结部分:
    • 策略模式的优点部分
    • 代码部分

总结部分:

策略模式和简单工厂模式很像
区别在于 简单工厂模式 需求的是由工程创造的类 去给客户直接答案
而策略模式在于 我有主体 一个主体 根据策略的不同来进行不同的计算 我的主体就负责收钱 然后调度相关策略。
在这里插入图片描述

策略模式的优点部分

  • 策略模式 是一种定义一系列算法的方法。从概念上来讲 这些算法都是在完成相同的业务工作,只是实现不一样,它可以以相同的方式调用所有的算法,减少了各种算法类与使用算法之间的耦合
  • 策略模式 的Strategy类层次为Context定义了一系列可供重用的算法和行为。继承有助于 析取出这些算法的公共功能
  • 策略模式简化了单元测试 每个算法都有自己的类 可以通过自己的接口单元测试

代码部分

#include<iostream>
#include <memory>
#include <vector>
#include <algorithm>
using namespace std;enum class StrategyType {NORMAL,DISCOUNT,REBATE
};
//策略类 是商品所有销售方式的基类
class Strategy {
public:virtual double GetResult(double TotalMoney) = 0; //纯虚基类 强迫子类去实现
};
//打折类 公有集成策略类
class DiscountStrategy:public Strategy{
public:DiscountStrategy(double percent) {DiscountPercent = percent;}double GetResult(double TotalMoney)override{double PayMoney = DiscountPercent * TotalMoney;return PayMoney;}
private:double DiscountPercent; //折扣的百分比
};
//原价类策略
class NormalStrategy :public Strategy {
public:NormalStrategy() {}double GetResult(double TotalMoney)override{return TotalMoney;}
};
//满返策略
class RebateStrategy :public Strategy {
public:RebateStrategy() {res = {{300,80}    //表示满300 减 80 后续可以直接在下面加 最好从数组第一位从贵的往便宜的写};}double GetResult(double TotalMoney)override{double PayMoney = 0;int n = res.size();for (int i = 0; i < n; i++){if(TotalMoney > res[i][0]){ PayMoney = TotalMoney - res[i][1];break;}}return PayMoney;}
private://此处的满减 可以自己写一下满多少减多少的策略 用vector二维数组保存策略 简化只写两个vector<vector<int>> res;
};
class CommodityContext {
public:std::unique_ptr<Strategy> strategy;CommodityContext() : strategy(nullptr) {}void SetStrategy(StrategyType type){switch (type) {case StrategyType::NORMAL:strategy = std::make_unique<NormalStrategy>();break;case StrategyType::DISCOUNT:strategy = std::make_unique<DiscountStrategy>(0.8);break;case StrategyType::REBATE:strategy = std::make_unique<RebateStrategy>();break;default:throw std::runtime_error("No Such Strategy");}}double CalculatePayment(double totalMoney) {if (!strategy) {throw std::runtime_error("Strategy not set");}return strategy->GetResult(totalMoney);}};int main()
{try {CommodityContext mycontext;mycontext.SetStrategy(StrategyType::REBATE);double paymoney = mycontext.CalculatePayment(999.9);std::cout << "付钱:" << paymoney << std::endl;}catch (exception e){cout << "error :" << e.what();}
}
http://www.yayakq.cn/news/272565/

相关文章:

  • 女同性怎么做的视频网站霞浦县建设局网站
  • 兼职网站高中生在家可做网站开发课程知识点总结
  • 深圳做网站制作wordpress自动生成二维码
  • 如果做网站推广响应式网页设计图片
  • 企业网站开发公司大全网站开发销售怎么做
  • 网站设计开发软件网页美化工具wordpress resume
  • 徐州云龙区建设局网站网站建设 业务
  • h5制作的炫酷个人网站郑田生网站建设及维护
  • 深圳团购网站设计价格免费发做网站
  • 自己做网站花多少钱大庆建设大厦网站
  • wordpress网站秒开电子商务网站开发指南
  • 方一凡和磊儿做家教的网站示范高职建设网站
  • 用php做美食网站有哪些自助免费建站系统
  • lol网站建设html搜索引擎优化
  • 电商网站 案例如何管理网站后台
  • 山西省城乡建设厅网站佛山网页制作设计
  • 成都保障房中心官方网站网站开发公司能不能去
  • 网站建设90g 吾爱破解做淘宝可以在别的网站发信息吗
  • 网站创建方案怎么写网站商城微信支付接口
  • 营销推广网站wordpress 放大镜
  • 江北网站建设的技术网站建设实习收获
  • 卖域名的网站哪个好aws服务器搭建wordpress
  • 响应式网站一般做几个尺寸跨越速运网站谁做的
  • 可以做网站的编程有什么微信分销平台哪家好
  • 网站开发虚拟主机是什么小企业网站建设计划书
  • 用易语言做网站如何网站推广常用方法包括
  • 如何取消危险网站提示网站开发工具发展史
  • 东莞网站建制作网站建设维护课件ppt
  • 企业网站建设和实现 论文沈阳世纪兴网站制作
  • 教育培训网站有哪些网站建设与维护百度百科