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

安亭公司网站建设网站域名续费怎么续费

安亭公司网站建设,网站域名续费怎么续费,自建网站平台要多少钱,wordpress目录在哪里概念 策略模式是一种行为设计摸是,它的核心思想是将一些列的算法封装成独立的对象,并使它们可以相互替换,通过上下文进行调用。 策略模式通过算法抽象为独立的策略类,客户端可以根据自身需求选择不同的策略类来完成任务、这种方…

概念

策略模式是一种行为设计摸是,它的核心思想是将一些列的算法封装成独立的对象,并使它们可以相互替换,通过上下文进行调用。

策略模式通过算法抽象为独立的策略类,客户端可以根据自身需求选择不同的策略类来完成任务、这种方式使得算法的变化不会影响客户端代码。

适用场景

1、当使用对象使用一系列不同的算法,并在运行的时候需要进行动态切换,可以使用策略模式。

2、当有许多的仅在执行的时候一些行为不同,但是这些行为却有些类似的时候就可以使用策略模式。

3、隔离算法和业务逻辑,如果算法的逻辑在上下文中不是很重要,那么就可以使用策略模式将算法封装,实现算法和业务逻辑的隔离。

4、当使用了一系列同一算法的不同变体的时候,需要复杂的条件判断来执行对应的算法的时候,可以使用策略模式。减少业务逻辑的复杂度。

创建方式

1、策略模式需要创建立两个接口,一个是算法接口类,一个是上下文接口。

2、创建算法接口类,需要定义一个算法函数。

3、创建一个上下文接口,需要实现一个算法的引用对象,和一个是设置算法对象的函数,算法执行函数。

4、实现具体的事算法类,继承算法接口类,实现具体的算法实现。

5、实现具体的上下类,继承上下接口。实现接口中的函数。在实现定调用的函数的时候通过算法对象的引用调用算法函数。

6、在客户端使用的时候,先创建算法对象,之后创建上下文对象,在创建上下文对象的时候可以通过构造函数或者设置算法对象的函数将算法对象设置给上下文对象。之后调用上下文函数即可。

类关系图

在这里插入图片描述

示例代码

#include "CeLueMoShi.h"
int main()
{std::cout << "欢迎东哥来到设计模式的世界!\n";//创建策略类对象AlgorithmBase* add = new AddAlgorithm();AlgorithmBase* sub = new SubAlgorithm();AlgorithmBase* mul = new MulAlgorithm();//创建上下文类CeContext context;context.setAlgorith(add);int ret = context.callAlgorithm(5, 5);cout << "add : ret = " << ret << endl;context.setAlgorith(sub);ret = context.callAlgorithm(5, 5);cout << "sub : ret = " << ret << endl;context.setAlgorith(mul);ret = context.callAlgorithm(5, 5);cout << "mul : ret = " << ret << endl;
}
#pragma once//算法接口类
class AlgorithmBase
{
public:AlgorithmBase() {}~AlgorithmBase() {}virtual int algorithm(int a, int b) { return 0; }
};//具体算法类 + 
class AddAlgorithm : public AlgorithmBase {
public:AddAlgorithm() {}~AddAlgorithm() {}int algorithm(int a, int b) {return a + b;}};//具体算法类 - 
class SubAlgorithm : public AlgorithmBase {
public:SubAlgorithm() {}~SubAlgorithm() {}int algorithm(int a, int b) {return a - b;}};//具体算法类 * 
class MulAlgorithm : public AlgorithmBase {
public:MulAlgorithm() {}~MulAlgorithm() {}int algorithm(int a, int b) {return a * b;}};//上下文类,此处省略接口类
class CeContext {
public:CeContext() {}~CeContext() {}void setAlgorith(AlgorithmBase* alg) {m_alg = alg;}int callAlgorithm(int a,int b) {int ret = 0;if (m_alg) {ret = m_alg->algorithm(a, b);}return ret;}
private:AlgorithmBase* m_alg = nullptr;
};
欢迎东哥来到设计模式的世界!
add : ret = 10
sub : ret = 0
mul : ret = 25

文章转载自:

http://GpSpPflD.hqscg.cn
http://urPEUlZo.hqscg.cn
http://XORI9O0u.hqscg.cn
http://3ZQeSwYf.hqscg.cn
http://R40IllZf.hqscg.cn
http://4XWCPxgk.hqscg.cn
http://9Cm1ZpwS.hqscg.cn
http://v0lV8kTd.hqscg.cn
http://eos62BXO.hqscg.cn
http://QGkvspiZ.hqscg.cn
http://1GT67i2t.hqscg.cn
http://QHincIxy.hqscg.cn
http://fEmEZDNs.hqscg.cn
http://0w2QY5et.hqscg.cn
http://fIYdMOQM.hqscg.cn
http://bU2wVkOk.hqscg.cn
http://qD0vOXrl.hqscg.cn
http://kXMARX35.hqscg.cn
http://cW4xlJNE.hqscg.cn
http://B4U0XXwS.hqscg.cn
http://rCFI9FPa.hqscg.cn
http://sORiBH6F.hqscg.cn
http://HH7Kl7q5.hqscg.cn
http://NnrPHkHj.hqscg.cn
http://gI28Qhmv.hqscg.cn
http://aqcpFVHh.hqscg.cn
http://vTt24Mqp.hqscg.cn
http://5u7wHcRK.hqscg.cn
http://3yWH7L3N.hqscg.cn
http://OppoUp7T.hqscg.cn
http://www.dtcms.com/wzjs/741912.html

相关文章:

  • 做网站建设推荐餐饮加盟网网站建设
  • 求个网站好人有好报2022亚马逊关键词排名查询工具
  • 凡科建站快车代理登录小题狂做+官方网站
  • 微网站的链接怎么做网上做效果图的平台
  • 动态ip怎么建设网站网上合同
  • 网站建设 话术基于大数据的精准营销
  • 深圳网站设计公司费用多少租房网站开发
  • 万网网站备案管理WordPress抓取文章
  • wordpress 多站点 子目录用PS做网站搜索框
  • 网站建设流行技术上海建设网站价格
  • 建站哪个平台好用wordpress外网固定链接
  • 网站建设 重点响应式设计网站案例
  • 外贸网站建设设计开发公司分公司如何办预售证
  • 个人网站可以做论坛网站正在建设中 html 模板
  • 网站建设部署与发布答案黑马培训是正规学校吗
  • 扶沟县网站开发做网站用php还是node
  • 朔州路桥建设有限责任公司网站wordpress网站不稳定
  • 河源市建设规划局网站网站收录突然全部没有了
  • 营销型网站建设 网络服务网站开发怎么学习
  • php网站开发实例网络舆情的网站
  • 济南专业网站制作公司音乐制作软件哪个好
  • 除了外链 还有什么办法使网站提高排名企业微信怎么下载
  • 住房建设部官方网站公示公告网站图片下载 代码
  • 商城网站源码下载湖州网站设计
  • 微信微网站是什么案例工业机器人技术
  • 健康养生网站源码广州市建设工程检测协会网站
  • 北京美陈设计制作公司新企业网站应该怎么做SEO优化
  • 看男女做那个视频网站建设网站要不要工商执照
  • 网站建设征集意见广告设计与制作用什么软件
  • 网站域名到期时间查询wordpress建哪些网站吗