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

电信专线可以做网站吗哈尔滨信息港

电信专线可以做网站吗,哈尔滨信息港,电子商务网站开发技术的背景,能在线做英语题目的网站策略模式 前言 先了解一下设计模式的几种类似: 行为型设计模式(Behavioral Design Pattern)是指一组设计模式,它们关注的是对象之间的通信和协作。行为型设计模式描述了对象之间的职责分配和算法的封装,以及如何在运…

策略模式

前言

先了解一下设计模式的几种类似:

  • 行为型设计模式(Behavioral Design Pattern)是指一组设计模式,它们关注的是对象之间的通信和协作。行为型设计模式描述了对象之间的职责分配和算法的封装,以及如何在运行时动态改变对象的行为。它们的目的是提高系统的灵活性和可复用性,使系统更易于扩展和维护。行为型设计模式通常包括以下几种:
    1. 模板方法模式(Template Method Pattern)
    2. 策略模式(Strategy Pattern)
    3. 观察者模式(Observer Pattern)
    4. 迭代器模式(Iterator Pattern)
    5. 责任链模式(Chain of Responsibility Pattern)
    6. 命令模式(Command Pattern)
    7. 访问者模式(Visitor Pattern)
    8. 备忘录模式(Memento Pattern)
    9. 状态模式(State Pattern)
    10. 中介者模式(Mediator Pattern)
    11. 解释器模式(Interpreter Pattern)
  • 创建型设计模式主要关注对象的创建过程,包括将对象的创建过程抽象化、封装和解耦等。常见的创建型设计模式包括:工厂方法模式、抽象工厂模式、单例模式、建造者模式和原型模式。
  • 结构型设计模式主要关注对象的组合方式,包括对象之间的组合方式、类之间的组合方式等。常见的结构型设计模式包括:适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式和代理模式。

策略模式是一种行为型设计模式,它定义了一系列算法,将每个算法都封装起来,并且使它们之间可以互换。策略模式让算法的变化独立于使用算法的客户。

正文

策略模式的优点包括:

  1. 可以方便地增加新的算法,因为每个算法都被封装到了自己的类中,新增加一个算法只需要添加一个新的类就可以了。
  2. 可以方便地切换算法,因为算法之间被解耦,所以可以方便地切换算法。
  3. 可以方便地扩展算法,因为每个算法都被封装到了自己的类中,所以可以方便地扩展算法。
  4. 可以减少代码重复,因为算法之间可以共享代码。
  5. 可以方便地测试算法,因为每个算法都被封装到了自己的类中,所以可以方便地测试算法。

总之,策略模式可以提高代码的灵活性、可扩展性和可维护性。它的应用范围很广,可以用于各种算法的封装和应用。

#include <iostream>
#include <vector>// 抽象策略类
class Strategy {
public:virtual void execute() = 0;
};// 具体策略类A
class ConcreteStrategyA : public Strategy {
public:virtual void execute() {std::cout << "执行策略A" << std::endl;}
};// 具体策略类B
class ConcreteStrategyB : public Strategy {
public:virtual void execute() {std::cout << "执行策略B" << std::endl;}
};// 上下文类
class Context {
public:void setStrategy(Strategy* strategy) {m_strategy = strategy;}void executeStrategy() {if (m_strategy != nullptr) {m_strategy->execute();}}private:Strategy* m_strategy;
};int main() {// 创建策略对象ConcreteStrategyA strategyA;ConcreteStrategyB strategyB;// 创建上下文对象Context context;// 执行策略Acontext.setStrategy(&strategyA);context.executeStrategy();// 执行策略Bcontext.setStrategy(&strategyB);context.executeStrategy();return 0;
}

在上面的代码中,我们定义了一个抽象策略类 Strategy,以及两个具体的策略类 ConcreteStrategyAConcreteStrategyB。这些策略类都实现了 execute 方法,用于执行具体的策略。

我们还定义了一个上下文类 Context,它包含一个成员变量 m_strategy,用于保存当前使用的策略对象。Context 类有两个方法,setStrategyexecuteStrategy,分别用于设置当前使用的策略对象和执行策略。

main 函数中,我们创建了两个具体的策略对象 strategyAstrategyB,以及一个上下文对象 context。我们首先将上下文对象的策略设置为 strategyA,然后调用 executeStrategy 方法执行策略。接着,我们将上下文对象的策略设置为 strategyB,再次执行策略。

这个示例中,策略模式的核心思想就是将具体的算法实现封装到不同的策略类中,通过上下文对象来控制使用哪个策略。这样,我们就可以在运行时动态地切换不同的策略,从而实现灵活的算法组合。

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

相关文章:

  • 网站做视频流量赚钱怎样做阿里巴巴网站
  • 青州网站优化手机版网站设计
  • 潍坊正规网站建设公司ipc网站备案查询
  • 企业为什么网站建设重庆网站建设公司销售
  • 学前心理学课程建设网站深圳网站建设黄浦网络 技术差
  • wdcp怎么上传做好的网站百度股市行情上证指数
  • 品牌网站建设有哪些内容做爰网站贴吧
  • 专门做图片的网站cms参考消息官方网站阅读
  • ipad网站开发网站收缩广告
  • 免费影视网站建设商务网页设计与制作相关技术介绍
  • dedecms 图片网站建设银行信用卡网站登录
  • 免费软件网站建设传媒公司名称
  • 福州seo网站优化论坛网站建设费用
  • 公司注销 网站备案品牌网网站建设公司
  • 怎么用php做网站北京装修公司哪家好十大排名
  • 净化网络环境网站该怎么做建立企业网站
  • 深圳哪些公司做网站做网站的图片分类
  • 怎么把网站做10万ip网站备案查询
  • 中兴通讯的网站建设分析亚马逊跨境电商个人开店流程
  • 深圳网站建设商家策划营销推广方案
  • 新农村建设网站淘宝下载安装
  • 江苏鑫圣建设工程有限公司网站起名网站是怎么做的
  • 丰台手机网站设计wordpress 域名使用
  • 泰安手机网站建设报价我市精神文明建设的门户网站
  • 现在企业需要建设网站吗wordpress 打包 exe
  • 电商网站开发代码网站免费源代码
  • 游标卡尺 东莞网站建设学生做网站的软件
  • 黄金软件在线下载搜索引擎网站优化推广
  • 东莞品牌网站建设百度的域名
  • 移动网站建设机构专业公司网络推广