C# 策略模式(Strategy Pattern)
策略模式定义了一系列的算法,并将每一个算法封装起来,使它们可以相互替换。策略模式让算法的变化独立于使用算法的客户。
// 策略接口
public interface IStrategy
{ void Execute();
} // 具体策略A
public class ConcreteStrategyA : IStrategy
{ public void Execute() { Console.WriteLine("Executing strategy A"); }
} // 具体策略B
public class ConcreteStrategyB : IStrategy
{ public void Execute() { Console.WriteLine("Executing strategy B"); }
} // 上下文类,接收客户的请求并使用某种策略
public class Context
{ private IStrategy _strategy; public Context(IStrategy strategy) { _strategy = strategy; } public void SetStrategy(IStrategy strategy) { _strategy = strategy; } public void ExecuteStrategy() { _strategy.Execute(); }
} // 客户端代码
class Program
{ static void Main(string[] args) { Context context = new Context(new ConcreteStrategyA()); context.ExecuteStrategy(); context.SetStrategy(new ConcreteStrategyB()); context.ExecuteStrategy(); }
}
相关文章:
C# 策略模式(Strategy Pattern)
策略模式定义了一系列的算法,并将每一个算法封装起来,使它们可以相互替换。策略模式让算法的变化独立于使用算法的客户。 // 策略接口 public interface IStrategy { void Execute(); } // 具体策略A public class ConcreteStrategyA : IStra…...
【初阶数据结构】1.算法复杂度
文章目录 1.数据结构前言1.1 数据结构1.2 算法1.3 如何学好数据结构和算法 2.算法效率2.1 复杂度的概念2.2 复杂度的重要性 3.时间复杂度3.1 大O的渐进表示法3.2 时间复杂度计算示例3.2.1 示例13.2.2 示例23.2.3 示例33.2.4 示例43.2.5 示例53.2.6 示例63.2.7 示例7 4.空间复杂…...
(图文详解)小程序AppID申请以及在Hbuilderx中运行
今天小编给大家带来了如何去申请APPID,如果你是小程序的开发者,就必须要这个id。 申请步骤 到小程序注册页面,注册一个小程序账号 微信公众平台 填完信息后提交注册 会在邮箱收到 链接激活账号 确认。邮箱打开链接后,会输入实…...
科技创新引领水利行业升级:深入分析智慧水利解决方案的核心价值,展望其在未来水资源管理中的重要地位与作用
目录 引言 一、智慧水利的概念与内涵 二、智慧水利解决方案的核心价值 1. 精准监测与预警 2. 优化资源配置 3. 智能运维管理 4. 公众参与与决策支持 三、智慧水利在未来水资源管理中的重要地位与作用 1. 推动水利行业转型升级 2. 保障国家水安全 3. 促进生态文明建设…...
ExcelVBA运用Excel的【条件格式】(三)
ExcelVBA运用Excel的【条件格式】(三)前面知识点回顾1. 访问 FormatConditions 集合 Range.FormatConditions2. 添加条件格式 FormatConditions.Add 方法语法表达式。添加 (类型、 运算符、 Expression1、 Expression2)其中 TextOperator:***&am…...
coco数据集格式计算mAP的python脚本
目录 背景说明COCOeval 计算mAPtxt文件转换为coco json 格式自定义数据集标注 背景说明 在完成YOLOv5模型移植,运行在板端后,通常需要衡量板端运行的mAP。 一般需要两个步骤 步骤一:在板端批量运行得到目标检测结果,可保存为yol…...
Linux学习——Linux中无法使用ifconfg命令
Linux学习——Linux中无法使用ifconfg命令? 💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅…...
二分查找3
1. 有序数组中的单一元素(540) 题目描述: 算法原理: 二分查找解题关键就在于去找到数组的二段性,这里数组的二段性是从单个数字a开始出现然后分隔出来的,如果mid落入左半部分那么当mid为偶数时nums[mid1]…...
从零开始学习嵌入式----C语言框架梳理与后期规划
目录 一、环境搭建. 二、见解 三、C语言框架梳理 四、嵌入式学习规划流程图(学习顺序可能有变) 一、环境搭建. C语言是一门编程语言,在学习的时候要准备好环境。我个人比较喜欢用VS,具体怎么安装请百度。学习C语言的时候,切忌…...
ESP32 步进电机精准控制:打造高精度 DIY 写字机器人,实现流畅书写体验
摘要: 想让你的 ESP32 不再仅仅是控制灯光的工具吗? 本文将带你使用 ESP32 开发板、步进电机和简单的机械结构打造一个能够自动写字的机器人。我们将深入浅出地讲解硬件连接、软件代码以及控制逻辑,并提供完整的项目代码和电路图,即使是 Ardu…...
传知代码-图神经网络长对话理解(论文复现)
代码以及视频讲解 本文所涉及所有资源均在传知代码平台可获取 概述 情感识别是人类对话理解的关键任务。随着多模态数据的概念,如语言、声音和面部表情,任务变得更加具有挑战性。作为典型解决方案,利用全局和局部上下文信息来预测对话中每…...
部署前端项目
常见部署方式有:静态托管服务、服务器部署 1. 静态托管服务 使用平台部署代码,比如 GitHub。 | 创建一个仓库,仓库名一般是 yourGithubName.github.io。 | 将打包后的静态文件文件上传到仓库。 | 在“Settings”(选项࿰…...
使用POI实现Excel文件的读取(超详细)
目录 一 导入poi相关的maven坐标 二 实现创建并且写入文件 2.1实现步骤 2.2实现代码 2.3效果展示 编辑 2.4注意 三 实现从Excel文件中读取数据 3.1实现步骤 3.2实现代码 3.3结果展示 一 导入poi相关的maven坐标 <!-- Apache poi --><dependency><gro…...
Debezium系列之:记录一次数据库某张表部分数据未同步到hive表的原因
Debezium系列之:记录一次数据库某张表部分数据未同步到hive表的原因 一、背景二、查找数据丢失流程三、数据丢失原因四、解决方法一、背景 反馈mysql数据库中某张表的数据没有同步到hive中,现在需要排查定位下原因数据丢失一般常见需求排查的方向: 数据是否采集到hdfs上采集…...
爆破器材期刊
《爆破器材》简介 《爆破器材》自1958年创刊以来,深受广大读者喜爱,是中国兵工学会主办的中央级技术刊物,在国内外公开发行,近几年已发行到10个国家和地区。《爆破器材》杂志被美国著名检索机构《化学文摘》(CA&a…...
Nginx Websocket 协议配置支持
前后分离的 Web 架构应用,在开发环境启动是可以直接连接支持 websocket 协议,因为没有中间件做转发处理。 当我们对前端进行编译后,通过 nginx 反向代理访问时,需要在nginx 配置文件中增加一些特定的头信息,让服务端识…...
【生成式对抗网络】GANs在数据生成、艺术创作,以及在增强现实和虚拟现实中的应用
一、GANs在数据生成中的应用 生成对抗网络(Generative Adversarial Networks, GANs)在数据生成领域具有显著的应用价值。GANs通过生成器(Generator)和判别器(Discriminator)两个相互竞争的神经网络&#x…...
大模型面试(三)
这次是某家公司的一个电话面试,问的过程还比较简单直接。 问:我们在大模型开源项目的应用上遇到了什么困难? 这个。。有两个困难,一个是RAG的优化,一开始RAG是比较慢的,而且召回率不高; 后来…...
pycharm中快捷键汇总
Pycarm指令汇总 Ctrl鼠标 单击,能直接查看其用法 Ctrl/ 快速注释 CtrlC 在pycharm的terminal中可以停止运行, 其他的地方可以复制。 CtrlV 粘贴 CtrlA 全选 CtrlP 查看()中需要填写什么参数 Altenter 自动不补全所需要的库...
TCP/IP协议族结构和协议
TCP/IP协议族是互联网及许多其他网络的基础,它由一系列相互关联的协议组成,用于实现网络通信。TCP/IP协议族采用ARPANET参考模型,大致可以分为四个层次:链路层、网络层、传输层和应用层。每个层次都有特定的协议和功能,确保数据能够从一个网络设备传输到另一个网络设备。 …...
Windows Node.js版本管理实战:NVM-Windows配置与部署解决方案
Windows Node.js版本管理实战:NVM-Windows配置与部署解决方案 【免费下载链接】nvm-windows A node.js version management utility for Windows. Ironically written in Go. 项目地址: https://gitcode.com/gh_mirrors/nv/nvm-windows NVM-Windows是Windows…...
PUBG罗技鼠标宏终极配置指南:5分钟快速上手完美压枪
PUBG罗技鼠标宏终极配置指南:5分钟快速上手完美压枪 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 还在为《绝地求生》中难以控制的…...
本地大模型赋能Thunderbird:离线AI邮件助手部署与实战指南
1. 项目概述:当本地大模型遇上邮件客户端 如果你和我一样,每天被海量的邮件淹没,同时又对AI助手处理邮件的隐私问题心存疑虑,那么“micz/ThunderAI”这个项目可能会让你眼前一亮。简单来说,它是一款为经典邮件客户端Th…...
告别卡顿与隐私担忧:用Docker Compose在1核1G VPS上部署高性能RustDesk私有服务器
在1核1G VPS上构建高性能RustDesk私有化服务的完整指南 远程协作已成为现代工作流中不可或缺的一环,而数据隐私和连接稳定性则是技术爱好者最关注的核心问题。开源远程桌面解决方案RustDesk以其轻量级架构和自托管能力,为追求完全控制权的用户提供了理想…...
低查重AI教材生成利器,AI写教材工具让你1周完成40万字书稿!
在撰写教材的过程中,总是难以避免“慢节奏”的所有坑。当框架和资料都已准备妥当时,却常常因为撰写内容而停滞不前——一句话反复斟酌半小时,仍觉得不够准确;章节间的衔接更是让人绞尽脑汁,找不到合适的表达方式&#…...
人工智能领域SCI期刊征稿|中科院2区为主,录用率80%+,对国人极度友好,避坑必看,自引率安全、投稿零压力,审稿高效、录用率拉满,毕业 / 评职必看!
对于AI、计算机视觉、神经网络、计算智能领域的科研人(硕博、青年教师、工程师)而言,发表SCI核心需求是「分区稳、录用易、对国人友好、无预警风险」。本文整理4本人工智能领域优质SCI期刊,涵盖中科院2区(4本ÿ…...
claude code用户如何通过taotoken解决账号封禁与token不足难题
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Claude Code 用户如何通过 Taotoken 解决账号封禁与 Token 不足难题 对于深度依赖 Claude Code 作为编程助手的开发者而言…...
抠图怎么抠出来?2026年最好用的免费AI抠图工具测评指南
你是否经常为了一张证件照、商品图或者头像而烦恼?想要快速去掉背景但又不想学复杂的PS操作?我今天要分享的,就是如何用现代AI抠图工具轻松搞定这一切。为什么抠图这么难?抠图之所以成为很多人的"老大难",主…...
树莓派5 vs 树莓派4:从硬件架构到应用场景的全面对比与实战指南
1. 项目概述:为什么我们需要重新审视树莓派5?如果你和我一样,从树莓派2、3、4一路用过来,每次新版本发布都像是一次“挤牙膏”式的升级,那么树莓派5的到来,绝对会打破你的固有印象。它不再仅仅是“更快一点…...
紧急通知:FAO 2024渔业AI伦理新规已生效!NotebookLM合规使用红线清单(含数据脱敏、模型可解释性、渔民知情权三重校验表)
更多请点击: https://intelliparadigm.com 第一章:FAO 2024渔业AI伦理新规核心要义与NotebookLM适配总览 联合国粮农组织(FAO)于2024年3月发布的《人工智能在渔业与水产养殖中的伦理应用指南》,首次将“可追溯性权”“…...
