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

整站网站优化推荐发布外链的平台有哪些

整站网站优化推荐,发布外链的平台有哪些,佛山做外贸网站哪家好,mvc做的网站策略模式是一种行为设计模式,它定义了一系列算法,将每个算法封装成一个对象,并使它们可以互换。策略模式使得算法的变化可以独立于使用算法的客户端。在策略模式中,有三个核心角色:策略接口(Strategy&#…

        策略模式是一种行为设计模式,它定义了一系列算法,将每个算法封装成一个对象,并使它们可以互换。策略模式使得算法的变化可以独立于使用算法的客户端。在策略模式中,有三个核心角色:策略接口(Strategy)、具体策略(ConcreteStrategy)、以及上下文(Context)。
① 策略接口(Strategy):定义了一个算法族的接口。
② 具体策略(ConcreteStrategy):实现了策略接口,封装了具体的算法实现。
③ 上下文(Context):维护一个对策略对象的引用,负责将客户端请求委托给具体的策略对象。
策略模式的核心思想是将算法的定义与使用分离,使得算法可以独立于客户端进行变化、扩展和替换

1、场景设计

实现场景:设计A、B两种策略,同一个客户端可以根据需要从两种策略中选择使用。

2、C++实现

`Strategy` 是策略接口,定义了一个纯虚的 `execute()` 方法。`ConcreteStrategyA` 和 `ConcreteStrategyB` 是具体策略,分别实现了 `execute()` 方法来执行具体的算法。`Context` 是上下文,持有一个策略对象的指针,并且负责将客户端的请求委托给具体的策略对象。在 `main()` 函数中,我们创建了两个具体策略对象,然后通过 `Context` 对象执行了这些策略。 

#include <iostream>// 策略接口
class Strategy {public:virtual void execute() = 0;
};// 具体策略A
class ConcreteStrategyA : public Strategy {public:void execute() override {std::cout << "Executing strategy A" << std::endl;}
};// 具体策略B
class ConcreteStrategyB : public Strategy {public:void execute() override {std::cout << "Executing strategy B" << std::endl;}
};// 上下文
class Context {private:Strategy *strategy;public:Context(Strategy *strat) : strategy(strat) {}void setStrategy(Strategy *strat) {strategy = strat;}void executeStrategy() {if (strategy) {strategy->execute();}}
};int main() {ConcreteStrategyA strategyA;ConcreteStrategyB strategyB;Context context(&strategyA);context.executeStrategy();context.setStrategy(&strategyB);context.executeStrategy();return 0;
}

3、Java实现

`Strategy` 是策略接口,定义了一个执行算法的方法 `execute()`。`ConcreteStrategyA` 和 `ConcreteStrategyB` 是具体策略,分别实现了 `execute()` 方法来执行具体的算法。`Context` 是上下文,维护一个对策略对象的引用,并且负责将客户端的请求委托给具体的策略对象。在 `main()` 方法中,我们创建了上下文对象,并分别设置了两种不同的策略,然后执行策略。 

package behavioralpattern.strategy;public class StrategyDemo {// 策略接口interface Strategy {void execute();}// 具体策略Astatic class ConcreteStrategyA implements Strategy {@Overridepublic void execute() {System.out.println("Executing strategy A");}}// 具体策略Bstatic class ConcreteStrategyB implements Strategy {@Overridepublic void execute() {System.out.println("Executing strategy B");}}// 上下文static class Context {private Strategy strategy;public void setStrategy(Strategy strategy) {this.strategy = strategy;}public void executeStrategy() {strategy.execute();}}public static void main(String[] args) {Context context = new Context();Strategy strategyA = new ConcreteStrategyA();Strategy strategyB = new ConcreteStrategyB();context.setStrategy(strategyA);context.executeStrategy();context.setStrategy(strategyB);context.executeStrategy();}
}
http://www.hkea.cn/news/230558/

相关文章:

  • 看房地产的app在哪看aso安卓优化
  • 网站与域名的区别扬州整站seo
  • 哪些网站可以进行域名注册公司关键词seo
  • 如何申请一个网站 做视频百度小说搜索热度排行榜
  • 天津做网站选择津坤科技b重庆seo教程搜索引擎优化
  • 什么网站做热能表好百度一下电脑版首页网址
  • 点击图片直接进入网站怎么做如何使用免费b站推广网站
  • 手机网站建设软件怎么在百度上做广告推广
  • 南京做网站团队手机app免费制作平台
  • 17173游戏网搜索优化指的是什么
  • 公司做网站需要给百度交钱吗百度竞价推广方案
  • 网站建设的关键seo推广小分享
  • 写小说的小网站百度关键词排名优化
  • 制作网站的成本规划公司如何建立网站
  • html语言做网站石嘴山网站seo
  • 做最好的言情网站官网seo优化
  • 云南建设监理协会网站营销失败案例分析
  • 怎么样做淘宝优惠券网站搜索引擎营销的优缺点
  • wordpress动态订单seo社区
  • 网站域没到期不能续费吗google谷歌搜索
  • 厦门好的做网站公司网络营销推广方式都有哪些
  • 重庆市建设工程信息官网站自己做网站的流程
  • 网站建设公司怎么做网络营销网站推广
  • 360应用商店seo服务套餐
  • 废橡胶网站建设个人博客网页设计
  • 什么网站做一手项目好域名查询官网
  • 做日用品的要找什么网站好站长工具端口检测
  • 贵州软件开发 网站开发手机版百度一下
  • 企业网站建立答辩问题百度怎么发布广告
  • 温州快建网站地推拉新接单网