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

哪里可以做网站开发中国十大网络科技公司排名

哪里可以做网站开发,中国十大网络科技公司排名,网站建设概要设计怎么写,厦门营销网站建设动机(Motivation) 在软件构建过程中,某些对象使用的算法可能多种多样,经常改变,如果将这些算法都编码到对象中,将会使对象变得异常复杂;而且有时候支持不使用的算法也是一个性能负担。 如何在运…

动机(Motivation)

在软件构建过程中,某些对象使用的算法可能多种多样,经常改变,如果将这些算法都编码到对象中,将会使对象变得异常复杂;而且有时候支持不使用的算法也是一个性能负担。
如何在运行时根据需要透明地更改对象的算法?将算法与对象本身解耦,从而避免上述问题?

模式定义

定义一系列算法,把它们一个个封装起来,并且使它们可互
相替换(变化)。该模式使得算法可独立于使用它的客户程
序(稳定)而变化(扩展,子类化)。

类图

在这里插入图片描述

代码示例

enum TaxBase {CN_Tax,US_Tax,DE_Tax,FR_Tax      
};class SalesOrder{TaxBase tax;
public:double CalculateTax(){//...if (tax == CN_Tax){//CN***********}else if (tax == US_Tax){//US***********}else if (tax == DE_Tax){//DE***********}else if (tax == FR_Tax){ 			//...}//....}};

如上述代码,根据不同国家的税法,选择不同的执行逻辑,充斥着很多的if else, 策略模式就是规避if else满天跑,使用策略模式后:


class TaxStrategy{
public:virtual double Calculate(const Context& context)=0;virtual ~TaxStrategy(){}
};class CNTax : public TaxStrategy{
public:virtual double Calculate(const Context& context){//***********}
};class USTax : public TaxStrategy{
public:virtual double Calculate(const Context& context){//***********}
};class DETax : public TaxStrategy{
public:virtual double Calculate(const Context& context){//***********}
};//*********************************
class FRTax : public TaxStrategy{
public:virtual double Calculate(const Context& context){//.........}
};class SalesOrder{
private:TaxStrategy* strategy;public:SalesOrder(StrategyFactory* strategyFactory){this->strategy = strategyFactory->NewStrategy();}~SalesOrder(){delete this->strategy;}public double CalculateTax(){//...Context context();double val = strategy->Calculate(context);//...}};

可以看到,所有的税法即策略,都被收拢到了一起,使用TaxStrategy基类指向需要的算法,当然选择哪一个TaxStratage依然是if else,如介绍里面说的,设计模式是将变化收集到笼子里关起来,不可能消灭变化。
如何真的消灭If else,可考虑打表,参考这篇文章:
https://developer.aliyun.com/article/1307318

http://www.yayakq.cn/news/374742/

相关文章:

  • 用软件做模板下载网站网站 chat now怎么做
  • 建设银行的积分网站wordpress 504 gateway time-out
  • 动易学校网站管理系统 下载福田网站设计公司哪家好
  • 威县做网站哪里便宜网络设计与实施课程设计
  • ui设计师mike个人网站如何为wordpress加评论
  • 成都网站建设低价网站制作实验报告
  • 网站开发上市公司昆明网站设计能实现什么功能
  • 网站升级停止访问如何做wordpress 搭建个人博客
  • 杭州网站优化服务怎么在网站上添加qq
  • 吴江企业建设网站公司部门等级划分
  • 阿里云 全国网站建设网站建设开发招标书
  • 做网站是怎么赚钱吗编程培训多少钱
  • 企业网站系统建设深圳公司注册要求
  • 免费试用网站软文营销模板
  • 网站开发需要的学历广州市企业网站建设企业
  • 网站怎么办网络广告的特点是
  • 高端品牌网站建设方案婚庆公司网站模板
  • php做的卖水果网站有哪些天津市网站制作公司
  • 网站上线需要怎么做东莞网站设计效果
  • 学校网站建设教程免费制作ai视频的软件
  • 智能建站系统免费版wordpress 单页面模板
  • 中国建设银行网站首网站logo在线设计
  • 500m主机空间能做视频网站吗2024年营业执照年审入口
  • 用asp做网站流程软件开发项目管理书籍
  • 网站绝对布局企业邮箱入口登录
  • 山东城市建设学院网站乐平市网站建设
  • 工信部 网站 备案北京哪里可以申请企业网站域名官网
  • 微网站是不是就是手机网站应该如何使用网络营销策略
  • xml做网站游戏ui设计是做什么的
  • 衡水公司建网站费用怎么用linux做网站服务器吗