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

.简述网站开发的流程网络公司是做什么的?

.简述网站开发的流程,网络公司是做什么的?,阿里云1M做网站,普通网站怎么做h51、定义与动机 定义一系列算法#xff0c;把它们一个个封装起来#xff0c;并且使它们可互相替换#xff08;变化#xff09;#xff0c;该模式使得算法可独立于使用它的客户程序#xff08;稳定#xff09;而变化#xff08;扩展#xff0c;子类化#xff09; 在软…1、定义与动机 定义一系列算法把它们一个个封装起来并且使它们可互相替换变化该模式使得算法可独立于使用它的客户程序稳定而变化扩展子类化 在软件构建过程中某些对象使用的算法可能多种多样经常改变如果将这些算法都硬编码到对象中将会使对象变得异常复杂而且有时候支持不适用的算法也是一个性能负担代码段过长 如何在运行时根据需要透明地更改对象的算法将算法与对象本身解耦从而避免上述问题 2、举例 对于一个跨境电商的软件来说计算不同国家的税收、货币结算是一个非常常见的事情而通产来说每个国家的税的计算方式并不相同每个国家都有其自己的税换算算法这里的设计也存在一定的门路如果换成代码层面来看 2.1、结构化软件设计流程 这种做法很简单 首先定义一个枚举类将不同国家的税率计算方式定义出来这个可以不需要只是为了使用方便然后定义销售订单类里面定义计算税的方法具体的实现通过大量的if-else if-else来具体调用对于这样的一个计算税的方法calculate方法过于庞大主要存在两个问题 违背开闭原则OCR当这个海外电商需要新增一个上线的国家那么需要修改TaxBase枚举类其次需要在计算方法里面增加这个国家的税计算方式很明显违背修改关闭拓展开放的原则性能负担其实这个软件在一个国家上线后大量的其他国家的税计算方式并不关心但是在代码中强行硬编码写入运行起来的代码段充斥着大量的无关代码导致性能的下降 enum TaxBase{CN_Tax, // 国内税US_Tax, // 美国税DE_Tax // 德国税/*如果需要增加需要在这里继续枚举的定义....JP_Tax,FR_Tax*/ };class SalesOrder{ private:TaxBase tax; public:double calculateTax(){//...if(tax CN_Tax){// CN*****}else if(tax US_Tax){// US*****}else if(tax DE_Tax){// DE*****}// 这里需要增加拓展国家税的计算方式} };2.2、策略模式 策略模式当代码中存在大量的if-else if-else或者switch-case时就应该考虑使用策略模式来优化实现思路思考 首先定义一个计算税的抽象基类TaxStrategy对于不同的国家计算方式定义不同的类继承TaxStrategy基类并且实现其计算calculateTax方法然后在需要使用计算的代码中聚合/组合一个基类TaxStrategy的指针如果注入的方式初始化最后在需要的地方通过基类指针TaxStrategy调用对应的不同国家的方法。核心点主要有几地方 所有国家的税收计算类都继承基类并且实现基类的抽象方法在需要使用的地方定义基类对象的指针通过注入的方式传入需要的子类对象多态最后调用方法通过虚函数表来调用实际传入对象的计算方法动态绑定、晚绑定策略模式提倡的互相替换在这里通过多态来实现替换体现在实际传入初始化的对象到底是哪一个 这样做的好处 如果需要增加新的国家可以看到大部分代码都是不用修改的只需要扩展新的类即可性能的优化实际说在使用的过程中只需要把需要的对象new出来即可 class TaxStrategy { public:virtual double calculateTax() 0;virtual ~TaxStrategy(); };class CNTax: public TaxStrategy{ public:double calculateTax() override {// 国内税计算} };class USTax: public TaxStrategy{ public:double calculateTax() override {// 美国税计算} };class DETax: public TaxStrategy{ public:double calculateTax() override {// 德国税计算} }; class JPTax: public TaxStrategy{ public:double calculateTax() override {// 日本税计算} };class SalesOrder{ private:TaxStrategy *taxStrategy; // 基类指针 public:SalesOrder(TaxStrategy *_taxStrategy): taxStrategy(_taxStrategy){}virtual ~SalesOrder(){delete taxStrategy;taxStrategy nullptr;}double calculate(){// ...// 还是动态绑定通过虚函数来调用实际的传入对象的calculateTax方法double val taxStrategy-calculateTax();// ...return val;} };通过这个UML图可以看到TaxStrategy和SalesOrder是相对稳定的而不稳定的是TaxStrategy的子类 3、总结 Strategy及其子类为组件提供了一系列的可重用的算法从而可以使得类型在运行时方便地根据需要再各个算法之间进行切换 Strategy模式提供了用条件判断语句意外的另一种选择消除条件判断语句就是在解耦合。含有许多条件判断语句的代码通常都需要Strategy模式 如果Strategy对象没有实例化变量那么各个上下文可以共享同一个Strategy对象从而节省对象开销。
http://www.zqtcl.cn/news/595353/

相关文章:

  • 帮人做网站一定要先收费网站构建免费
  • 营销型网站的优缺点如何在腾讯云做网站
  • 现在做网站怎么样网站运营与管理规划书
  • 国际物流公司网站建设有关应用网站
  • 网站后台维护技能娱乐公司网站模板
  • 有建网站的公司吗p2p理财网站开发要求
  • 做私单的网站高端html5网站设计工作室织梦模板 dedecms5.7
  • 视频网站切片怎么做如何做网站结构及栏目策划
  • 公司和网站备案查询龙江网站建设公司
  • 建一个平台网站需要多少钱安徽网站建设大全
  • 做网站接广告网站注册页面怎么做
  • 西安建站价格表电脑做视频的网站比较好
  • 建筑中级职称查询网站百度指数功能模块
  • 建设网站只慧聪网怎样做网站友情链接
  • 德阳网站开发dedecms5.7装饰公司网站模板
  • 下步我院将建设网站信息保密浙江温州网络公司
  • 一键建站网站seo关键词快速排名介绍
  • 自己做网站 什么wordpress博客文章加密
  • 怎样做音视频宣传网站wordpress 推送
  • 网站图片上传代码专业的企业进销存软件定制
  • 商品网站模板wordpress文章推荐
  • 十里堡网站建设做吃的教程网站
  • 比较好的源码网站河南网站seo推广
  • 做网站推广什么好网站界面结构
  • 龙岗网站优化常见的渠道推广方式有哪些
  • wordpress 后台乱码成都百度推广优化
  • 大连 响应式网站wordpress保存图片不显示
  • 二手车网站建站网站建设企业建站要求
  • 海山免费网站建设做视频网站如何赚钱
  • 网站增加点击率 怎样做小店面设计装修网