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

早期做网站 如何推广百度客服中心电话

早期做网站 如何推广,百度客服中心电话,经典网站设计img-1-small,学网站制作定义 定义一些列算法,把他们一个个封装起来,并且使他们可以相互替换(变化)。该模式使得算法可独立于使用它的客户程序(稳定)而变化(扩展、子类化)。 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.tj-hxxt.cn/news/24713.html

相关文章:

  • 做视频网站注意什么品牌推广活动有哪些
  • 政府网站建设工作网站流量排名查询工具
  • 光谷做网站推广价格网页设计培训教程
  • 上海商业网站建设费用新手怎么开始做电商
  • 深圳企业排名优化网站推广教程整站
  • 集团高端网站高质量软文
  • 网站分站作用软文推广渠道
  • 日本做鸡做爱成人网站播放百度seo怎么操作
  • 高端做网站价格seo的搜索排名影响因素主要有
  • 在上海做网站全网自媒体平台
  • 商丘高端网站建设域名购买哪个网站好
  • 微信网站开发模板网络营销策略包括哪些
  • wordpress 密码加密方式郑州网站建设推广优化
  • 做视频的网站带模板seo网络优化是什么工作
  • 海外网站测速2023年7月最新疫情
  • wordpress10和3优先级湖南网站建设推广优化
  • 做网站宣传有用吗做网页设计的软件
  • 网站设计的软件seo公司上海牛巨微
  • 企业网站排名怎么优化成人技术培训班有哪些种类
  • 章丘网站建设郑州网站策划
  • 做网站先做前台还是后台市场营销策划公司
  • 南昌公司网站建设公司永久免费无代码开发平台网站
  • 网站怎样多语言app拉新推广平台代理
  • 做btob上哪个网站好太极seo
  • 做自己的独立外贸网站软件定制开发平台
  • 东莞网站建设全过程莱芜seo
  • 电商网站建设与运行南宁哪里有seo推广厂家
  • 晋江网站有什么职业做公司网站建设服务机构
  • 江苏科技大学新校区建设网站好搜网惠州seo
  • 产品展示网站源码php河南郑州做网站的公司