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

有了域名和云主机怎么做网站关键词优化和seo

有了域名和云主机怎么做网站,关键词优化和seo,企业所得税优惠政策2020,青岛网站seo推广定义 定义一些列算法,把他们一个个封装起来,并且使他们可以相互替换(变化)。该模式使得算法可独立于使用它的客户程序(稳定)而变化(扩展、子类化)。 C实现 在不考虑策略模式的情况…

定义

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

C++实现

在不考虑策略模式的情况下,我们往往会写出以下代码:

class CompressData {
public:void compress(const char* stg_name, char* data, int size) {if (strcmp(stg_name, "lz4") == 0) {// lz4算法实现数据压缩} else if (strcmp(stg_name, "zlib") == 0) {// zlib算法实现数据压缩} else {// 未知算法,不支持}}
};

可以看出,如果我需要新增一个gzip压缩算法,那么我就需要在代码中新增一段实现gzip算法的代码。这明显违背了开放封闭原则。因此,考虑使用策略模式,代码实现如下:

class Strategy {
public:virtual void compress(char* data, int size) = 0;virtual ~Strategy() {}
};class Lz4Strategy : public Strategy {
public:void compress(char* data, int size) {// Lz4压缩算法实现}	
};class ZlibStrategy : public Strategy {
public:void compress(char* data, int size){// zlib压缩算法实现}
};class GzipStrategy : public Strategy {
public:void compress(char* data, int size){// Gzip压缩算法实现}
};

上述代码表明为每个策略单独创建一个类,这样在新增策略时,就只需要进行扩展即可。再来看CompressData类(上下文程序)如何实现。

class CompressData{
private:Strategy* _stg;
public:CompressData(StrategyFactory* factory){_stg = factory->createStrategy();}void compress(char* data, int size){_stg->compress(data, size);}~CompressData(){delete _stg;}
};

这里会用到工厂方法模式,客户程序在选择使用何中压缩算法时,是根据传入的工厂来决定的。到这里我们可以看出来,新增一个压缩策略,只需要扩展一个对应的压缩算法类即可,并不需要修改上下文程序。

类图

请添加图片描述
其中Context就是上下文程序,是稳定的,所有具体的策略都继承自抽象的策略,是变化的。因此新增策略,只需要对代码进行扩展即可。

总结

  • Strategy及其子类为组件提供了一系列可重用的算法,使得类型在运行时方便的根据需要在各算法之间切换。
  • 策略模式消除了条件判断语句,含有许多条件判断的语句往往可以使用策略模式来解耦合。
  • 如果Strategy对象没有数据成员,那么各个上下文之间可以共享同一个Strategy对象,从而节省对象开销。
http://www.yidumall.com/news/95390.html

相关文章:

  • 做公司网站报价免费推广网站2023mmm
  • 品牌网站建设方广告外链平台
  • 联盟网站做的最好网站域名注册查询
  • wordpress 409错误山东济南seo整站优化费用
  • 哪个网站做任务赚钱的站长工具搜索
  • wordpress文章页面边栏合肥网络seo推广服务
  • 怎么使用电脑是做网站上海网站seo快速排名
  • 狼雨的网站北京口碑最好的教育机构
  • 网站到期域名怎么解决数字化营销怎么做
  • 沈阳市网站建设哪里的公司比较好看今天的新闻
  • 公众号运营技巧郑州厉害的seo优化顾问
  • 各类设计型网站网站推广和精准seo
  • 如何做网站内链头条热点新闻
  • 网站的目的和意义赣州seo外包
  • 做一个h5需要多少钱惠州seo排名优化
  • 个人可以建设哪些网站写手代写平台
  • 广州做网站如何百度的合作网站有哪些
  • java手机网站开发保定seo外包服务商
  • 温州网站建设有限公司免费的舆情网站app
  • 建筑毕业设计代做网站推广链接点击器app
  • 网站上面的内容里面放照片怎么做台州seo排名扣费
  • 成都网络优化网站建设cba目前排行
  • 椒江区建设局网站seo经验
  • 上海网站制作建设怎么样360优化大师官网
  • 建设海外网站郴州seo
  • 做网站的成本在哪郑州网站
  • 跨境电商自己做网站引流网站seo分析
  • 手工制作玩具兰州模板网站seo价格
  • 重庆网站建设优化今日油价92汽油价格调整最新消息
  • wordpress网站怎么设置关键词近期新闻热点