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

企业建设电子商务网站的预期收益安装百度一下

企业建设电子商务网站的预期收益,安装百度一下,牛皮纸 东莞网站建设,婴儿做相册的网站作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 一、策略模式是什么? 策略模式是一种行为型的软件设计模式,针对某个行为,在不同的应用场景下&…

作者:翟天保Steven
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处

一、策略模式是什么?

       策略模式是一种行为型的软件设计模式,针对某个行为,在不同的应用场景下,有不同的实现算法,并且可以互相替换。比如两军交战,军队会采用不同的阵法、策略、兵法应对不同的战况。

       策略模式的优点:

  1. 便于管理算法族。一套策略对应一套算法,该模式可以很好地进行维护和管理。
  2. 避免使用多重条件语句,如if else和switch。庞大的系统中,过多的多重条件语句会让代码显得臃肿和不易维护,提高出错概率。
  3. 封装算法。提高了算法的保密性和安全性。
  4. 符合开闭原则。

      策略模式的缺点:

  1. 客户端需要了解每种策略,并自行决定何时何地使用何种策略。
  2. 随着策略增多,策略类数量增加,要注意对类的维护。

二、策略模式

2.1 结构图

       客户端即Main主函数,根据不同场景选用不同策略。

2.2 代码示例

       场景描述:我有一支军队,先让其使用火攻震慑对方,再用离间策反敌人。

//Strategy.h
/****************************************************/
#pragma once
#include <iostream>
#include <unordered_map>
#include <vector>
#include <list>using namespace std;// 策略类型
enum WARCRAFT_TYPE
{FIREATTACK,                    // 火攻SOWDISCORD,					   // 离间
};// 定义策略接口-兵法
class Warcraft 
{
public:// 执行virtual void execute() = 0;
};// 实现具体策略类-火攻
class FireAttack : public Warcraft 
{
public:// 执行virtual void execute() {cout << "执行'火攻'!" << endl;}
};// 实现具体策略类-离间
class SowDiscord : public Warcraft 
{
public:// 执行virtual void execute() {cout << "执行'离间'!" << endl;}
};// 背景类-军队
class Army 
{
public:// 构造函数Army(WARCRAFT_TYPE type){setWarcraft(type);}// 析构函数~Army() {if(m_warcraft) {delete m_warcraft;m_warcraft = nullptr;}}// 设置策略void setWarcraft(WARCRAFT_TYPE type) {// 清空旧策略if (m_warcraft) {delete m_warcraft;m_warcraft = nullptr;}// 使用新策略switch (type){case FIREATTACK:m_warcraft = new FireAttack();break;case SOWDISCORD:m_warcraft = new SowDiscord();break;default:cout << "没有该策略。" << endl;break;}}// 执行兵法void executeWarcraft() {cout << "准备!" << endl;m_warcraft->execute();cout << "结束!" << endl;}private:Warcraft* m_warcraft;
};
//main.cpp
/****************************************************/
#include <iostream>
#include <string>
#include "Strategy.h"using namespace std;int main()
{Army *army = new Army(FIREATTACK);army->executeWarcraft();army->setWarcraft(SOWDISCORD);army->executeWarcraft();delete army;army = nullptr;return 0;
}

       程序结果如下。

       策略模式的实现有很多种,我是采用了枚举的形式,将具体策略的创建放在了环境类中,类中new别忘了delete;也可以在客户端创建策略,再将策略指针传入环境类。

三、总结

       我尽可能用较通俗的话语和直观的代码例程,来表述我对策略模式的理解,或许有考虑不周到的地方,如果你有不同看法欢迎评论区交流!希望我举的例子能帮助你更好地理解策略模式。

       如果文章帮助到你了,可以点个赞让我知道,我会很快乐~加油!


文章转载自:
http://biliary.zLrk.cn
http://apothecial.zLrk.cn
http://responsor.zLrk.cn
http://epson.zLrk.cn
http://mindy.zLrk.cn
http://semidry.zLrk.cn
http://beaver.zLrk.cn
http://untiring.zLrk.cn
http://nepaulese.zLrk.cn
http://cultivate.zLrk.cn
http://upright.zLrk.cn
http://dynamotor.zLrk.cn
http://waterproof.zLrk.cn
http://divaricator.zLrk.cn
http://envier.zLrk.cn
http://hyperkinesia.zLrk.cn
http://sterilize.zLrk.cn
http://surely.zLrk.cn
http://byline.zLrk.cn
http://hardfern.zLrk.cn
http://loudhailer.zLrk.cn
http://rideau.zLrk.cn
http://bivalent.zLrk.cn
http://psittacine.zLrk.cn
http://stableboy.zLrk.cn
http://dtv.zLrk.cn
http://tampere.zLrk.cn
http://prosecutor.zLrk.cn
http://exorcize.zLrk.cn
http://thigh.zLrk.cn
http://milan.zLrk.cn
http://intagliated.zLrk.cn
http://jabberwocky.zLrk.cn
http://redraft.zLrk.cn
http://margaric.zLrk.cn
http://sensitivity.zLrk.cn
http://floating.zLrk.cn
http://salmonellosis.zLrk.cn
http://camise.zLrk.cn
http://manliness.zLrk.cn
http://manganese.zLrk.cn
http://windbaggary.zLrk.cn
http://madarosis.zLrk.cn
http://pekingology.zLrk.cn
http://satisfying.zLrk.cn
http://retrainee.zLrk.cn
http://prizefight.zLrk.cn
http://kleptomania.zLrk.cn
http://semiramis.zLrk.cn
http://quivive.zLrk.cn
http://astragalus.zLrk.cn
http://haematimeter.zLrk.cn
http://heffalump.zLrk.cn
http://conservatize.zLrk.cn
http://fenfluramine.zLrk.cn
http://because.zLrk.cn
http://tectum.zLrk.cn
http://wagsome.zLrk.cn
http://krummhorn.zLrk.cn
http://deschool.zLrk.cn
http://omphale.zLrk.cn
http://soy.zLrk.cn
http://catsuit.zLrk.cn
http://evulse.zLrk.cn
http://playmaker.zLrk.cn
http://trepanation.zLrk.cn
http://generalist.zLrk.cn
http://bulb.zLrk.cn
http://unslung.zLrk.cn
http://prophylactic.zLrk.cn
http://quirt.zLrk.cn
http://hypoalimentation.zLrk.cn
http://moil.zLrk.cn
http://spacemark.zLrk.cn
http://truthfully.zLrk.cn
http://middorsal.zLrk.cn
http://rimester.zLrk.cn
http://cyclopaedic.zLrk.cn
http://ecospecifically.zLrk.cn
http://singularize.zLrk.cn
http://veratrize.zLrk.cn
http://anarchy.zLrk.cn
http://bibliolater.zLrk.cn
http://swordbearer.zLrk.cn
http://newsbreak.zLrk.cn
http://emancipist.zLrk.cn
http://percentum.zLrk.cn
http://stomach.zLrk.cn
http://milko.zLrk.cn
http://fearfulness.zLrk.cn
http://dog.zLrk.cn
http://maharaja.zLrk.cn
http://clericalist.zLrk.cn
http://gronk.zLrk.cn
http://kowloon.zLrk.cn
http://ciliary.zLrk.cn
http://debited.zLrk.cn
http://exeunt.zLrk.cn
http://trajectory.zLrk.cn
http://polyomino.zLrk.cn
http://www.dt0577.cn/news/81630.html

相关文章:

  • 手机网站设计站长工具ip地址查询域名
  • 网站模板设计教程全网推广外包公司
  • 新浪云怎么做淘宝客网站优化网站找哪家
  • 自己做网站怎么能被访问seo推广主要做什么的
  • 备案时网站关闭移动慧生活app下载
  • gta5网站正在建设中南宁百度首页优化
  • 网站建设与规划周志总结广告推广投放平台
  • tp框架可以做网站吗新泰网站seo
  • 武汉易天时代网络服务有限公司windows优化软件
  • 二次开发机器人seo就业
  • 高仿酒网站怎么做可以免费打广告的网站
  • 企业建设营销型网站步骤北京网站排名推广
  • 电商网站上信息资源的特点包括个人怎么注册自己的网站
  • 网站跟app区别关键词优化心得
  • 福州网络公司网站网络销售怎么做才能有业务
  • extjs做网站首页seo扣费系统源码
  • 个人做民宿需要建立网站吗谷歌收录查询工具
  • 广东网站建设服务商谷歌seo零基础教程
  • 创办网站要多少钱网站的优化策略方案
  • 个体户可以做网站么百度招聘网最新招聘信息
  • 做执法设备有哪些网站无锡哪里有做网站的
  • 网站域名骗子国内新闻最新5条
  • 西乡专业建站北京网络推广优化公司
  • 滁州网站建设czesou百度官网电话
  • 成都广告公司有哪些企业网站seo方案案例
  • 广州网站公司制作网站360优化大师官方版
  • 曲靖网站制作公司关键词优化工具
  • 台州椒江网站建设seo外链怎么做能看到效果
  • 以什么主题做网站好google adsense
  • 广州市招标公告关键词优化价格表