策略模式

简介: 策略模式

策略模式是什么?


它定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化不会影响到使用算法的客户。


结构图:


image.png


从定义中我们得知,策略模式是定义了算法,所以我们以超市结账的例子展示一下策略模式。从上面的结构图中我们看到有一个策略类,所以我们要有一个策略类。

abstract class Strategy
{
    public abstract void AlgorithmInterface();
}

策略类被继承的具体算法

//算法A实现方法
class ConcreteStrategyA:strategy
{
    public override void AlgorithmInterface()
    {
        console.writeLone("算法A实现");
    }
}
//具体算法B
class ConcreteStrategyB:strategy
{
    public override void AlgorithmInterface()
    {
        console.writeLone("算法B实现");
    }
}
//具体算法C
class ConcreteStrategyC:strategy
{
    public override void AlgorithmInterface()
    {
        console.writeLone("算法C实现");
    }
}

context类

class Context
{
    Strategy strategy;
    public Context(strategy strategy)
    {
        this.strategy=strategy;
    }
//上下文接口
public void ContextInterface()
{
    strategy.AlgorhmInterface();
}
}

客户端

static void main (string [] args)
{
    Context context;
context=new context(new ConcreteStrategyA());
context.ContextInterface();
context=new Context(new ConcreteStrategyB());
context.ContextInterface();
context=new Context(new ConcreteStrategyC());
context.ContextInterface();
}

相关文章
|
8天前
|
人工智能 运维 安全
|
6天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
7天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
642 22
|
7天前
|
人工智能 测试技术 API
智能体(AI Agent)搭建全攻略:从概念到实践的终极指南
在人工智能浪潮中,智能体(AI Agent)正成为变革性技术。它们具备自主决策、环境感知、任务执行等能力,广泛应用于日常任务与商业流程。本文详解智能体概念、架构及七步搭建指南,助你打造专属智能体,迎接智能自动化新时代。
|
13天前
|
人工智能 JavaScript 测试技术
Qwen3-Coder入门教程|10分钟搞定安装配置
Qwen3-Coder 挑战赛简介:无论你是编程小白还是办公达人,都能通过本教程快速上手 Qwen-Code CLI,利用 AI 轻松实现代码编写、文档处理等任务。内容涵盖 API 配置、CLI 安装及多种实用案例,助你提升效率,体验智能编码的乐趣。
1045 110
人工智能 数据可视化 数据挖掘
235 0