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

网站建设开发服务费怎么做分录稿定设计在线制作

网站建设开发服务费怎么做分录,稿定设计在线制作,软件开发下载,做图片的网站有哪些策略模式(Strategy Pattern)是一种行为型设计模式,它定义了一系列算法,将每个算法封装起来,使它们可以相互替换,让客户端代码和算法的具体实现解耦。这样,客户端可以根据不同的需求选择不同的算…

策略模式(Strategy Pattern)是一种行为型设计模式,它定义了一系列算法,将每个算法封装起来,使它们可以相互替换,让客户端代码和算法的具体实现解耦。这样,客户端可以根据不同的需求选择不同的算法,而无需修改原有的代码。

C 实现策略模式

#include <stdio.h>
#include <stdlib.h>// 定义策略接口
typedef struct {void (*execute)(void);
} Strategy;// 具体策略1
void strategy1_execute(void) {printf("Executing Strategy 1\n");
}// 具体策略2
void strategy2_execute(void) {printf("Executing Strategy 2\n");
}// 客户端代码,使用策略接口
void client_code(Strategy* strategy) {strategy->execute();
}int main() {// 创建策略对象Strategy* strategy1 = (Strategy*)malloc(sizeof(Strategy));strategy1->execute = strategy1_execute;Strategy* strategy2 = (Strategy*)malloc(sizeof(Strategy));strategy2->execute = strategy2_execute;// 使用不同的策略client_code(strategy1);client_code(strategy2);// 释放内存free(strategy1);free(strategy2);return 0;
}

C++ 实现策略模式

#include <iostream>// 定义策略接口
class Strategy {
public:virtual void execute() = 0;virtual ~Strategy() {}
};// 具体策略1
class Strategy1 : public Strategy {
public:void execute() override {std::cout << "Executing Strategy 1" << std::endl;}
};// 具体策略2
class Strategy2 : public Strategy {
public:void execute() override {std::cout << "Executing Strategy 2" << std::endl;}
};// 客户端代码,使用策略接口
void client_code(Strategy* strategy) {strategy->execute();
}int main() {// 使用不同的策略Strategy1 strategy1;Strategy2 strategy2;client_code(&strategy1);client_code(&strategy2);return 0;
}

策略模式的优缺点

优点:

灵活性增强:策略模式使得算法独立于客户端使用而变化。可以在运行时动态选择算法,灵活应对不同的需求和场景。
代码重用:各个策略可以被多个客户端共享,避免了代码重复。
扩展性良好:当需要添加新的算法时,只需增加新的策略类,而不需要修改已有的代码。
易于测试:由于策略类封装了具体的算法,因此易于进行单元测试。

缺点:

增加类数量:每个具体策略都需要一个对应的类,如果策略较多,可能会增加类的数量,增加代码维护的复杂性。
客户端必须了解策略:客户端代码必须了解所有的策略,以便进行选择,如果策略较多,可能会增加客户端代码的复杂性。
总体来说,策略模式适用于需要在运行时动态选择算法,并且希望算法和客户端代码解耦的情况。对于简单的情况,可能没有必要使用策略模式,但在复杂的场景下,它可以带来更好的可维护性和可扩展性。

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

相关文章:

  • 常宁市建设局网站wordpress手机mip
  • 可以免费做网站做网站价格需要多少钱
  • 网站开发杭州珠海网站快速排名提升
  • 东台网站开发网站信息查询
  • 网站建设的方案模板下载合肥网络优化公司有几家
  • 做爰午夜福利全过程视频网站wordpress设置标题字体大小
  • 施工员证查询官方网站上海站优云网络科技有限公司
  • 织梦网站怎么做下载地址wordpress标签云美化
  • 如何选择邯郸做网站wordpress 产品分类
  • 免费做公众号的网站wordpress教程网
  • 上线了相同网站网站 内部搜索引擎
  • 如何做网站产品图片wordpress 上一页
  • 莆田哪里有网站开发asp网站后台源码
  • 网站设计步骤是什么用手机怎样免费做网站
  • 怎样给网站做排名优化制作微信小程序费用
  • 专业微信网站建设多少钱做网站怎么做放大图片
  • 惠州专业做网站金环建设集团有限公司官方网站
  • 网站粘性旅游网站自己怎么做
  • 建设银行网站怎么登陆不莱芜手机网站设计公司
  • 网站怎么做电子合同寻找网站建设推广
  • 电商网站开发北京做ppt用什么网站好
  • 做电影网站服务器wordpress 管理中心
  • wordpress要不要放网站地图网站好友邀请链接生成 php
  • 企业网站优化分为哪两个方向网页设计的流行趋势有哪些
  • 网站建设公司不能备案吗网页设计暑期班
  • 网站开发招标前提如何创立自己的公司
  • 网站建设公司广告标题语上海网站建设流
  • e福州官方网站wordpress创建企业网站
  • 新民企业自助建站经典的软文广告
  • 湖北省住房和城乡建设厅网站的公示公告天美平台注册e登录333oo