设计模式--策略模式

减小伺服电机共振的方法(以松下伺服为例) 嘿 ! 我是【小黄】 , 我们又见面啦 !!! 毕竟技术只有大家交流才会进步嘛 ! 这博客是对自己学习的一点点记录和总结 ,如果您对自动控制感兴趣的话 ,可以关注一下我的动态 , 我们一起学习呀 ! 我们都还年轻 ,我们还有无限可能 。 YES ! 减小伺服电机共振的方法(以松下伺服为例)1. 准备工作:1.1.1 如何推定共振点:1.1.2 测定实操:1.1.3 总结:2. 下期预告: 在我们调试完伺服参数以后机器人运动到某个特定位置会产生振动或异响,我们要做的就是消除这个异响保.. 阅读详情

简介

定义一组算法,将每个算法都封装起来,并且使他们相互转换。
意图: 定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。
解决问题: 在有多种算法相似的情况下,使用 if…else 所带来的复杂和难以维护(简而言之消除if分支过多问题)
指导思想:开闭原则、迪米特法则、依赖倒置原则

策略模式结构图如下:
在这里插入图片描述

角色

通过上述结构图可以看出策略模式包含的角色:
环境类(Context):用来操作策略的上下文环境,起承上启下作用,屏蔽高层模块对策略,算法的直接访问。是策略模式的重点,它借用了代理模式的思路,和代理模式的区别就是封装角色和被封装的策略类不是同一个接口。
抽象策略类(Strategy):策略的抽象,通常为接口或者是抽象类,定义每个策略或者是算法必须具有的属性和方法。
具体策略类(ConcreteStrategy):具体的策略实现,包含具体的算法。

简单实现

1.定义抽象策略类(Strategy)

public interface Strategy {
    void doSomething();
}

2.定义两个具体策略类(ConcreteStrategy)分别实现抽象策略。

public class ConcreteStrategyA implements Strategy {
    @Override
    public void doSomething() {
        System.out.println("A do something....");
    }
}

public class ConcreteStrategyB implements Strategy{
    @Override
    public void doSomething() {
        System.out.println("B do something ...");
    }
}

3.定义环境上下文。

public class Context {

    private Strategy strategy;

    public Context(Strategy strategy) {
        this.strategy = strategy;
    }

    public void exec(){
        this.strategy.doSomething();
    }
}

4.Client(Main验证)

public class StrategyMain {
    public static void main(String[] args) {
        Strategy A = new ConcreteStrategyA();
        Context contextA = new Context(A);
        contextA.exec();

        Strategy B = new ConcreteStrategyB();
        Context contextB = new Context(B);
        contextB.exec();
    }
}

在这里插入图片描述

优缺点

在这里插入图片描述

研究生课程笔记:软件包在流行病学中的应用(三)——STATA软件 关键词:STATA软件基本操作、STATA对于流行病学研究的实现、STATA对复杂抽样设计样本量计算的实现 一、STATA软件基本操作 这部分网上教程有很多,也可以直接根据stata自带的help功能进行自学,在此只记录课程中提及的功能项。 1. 变量编辑 1.1 赋值:label type(按精度区分) 1) 整型:int(32), short(16), long(32) 2) 实型:flo... 阅读详情

相关推荐

【Excel VBA 编程】批量核对两张表格数据,行和列显示顺序均被打乱

利用数据字典在 Excel 中进行表格数据的核对,该表格含有多行多列,并且行和列顺序是打乱的,批量核对数据后将差异输出

wei1019的专栏 1291

设计模式——Strategy(策略)模式

目录前言1 定义2 适用性3 结构3.1 结构图3.2 参与者4 实际应用举例4.1 Context——List列表和StuContext4.2 具体策略:ConcreteStrategyA和ConcreteStrategyB4.3 测试demo5 总结参考文献 前言 当我们对一个对象的某个操作,比如文本分析或者对象排序有多种算法,但是如果硬编码进它们的类中,将导致出现后续扩展困难,复杂度较高等。策略模式提出了一种方法解决这种情况。 1 定义 Strategy(策略)模式:定义一系列算法,并把它们独立封装到

qq_36566262的博客 1559

菜鸟-需求预测与分仓规划

通过修改模型的损失函数对问题进行求解,比其它单模型的效果好很多。

永不理解_fdu的博客 4881

设计模式系列(二) ——策略模式

策略模式策略模式概要策略模式定义策略模式结构鸭子模型引入提出需求解决方案之——使用继承解决方案之——使用接口解决方案之——策略模式总结策略模式涉及的设计原则策略模式优缺点 策略模式概要 策略模式定义 什么是策略模式?先看下《 Head First 》一书中的定义: 从定义来看,说的过于抽象,可能会一头雾水,不明白策略模式到底是个啥东西,实际上"策略"二字古已有之,在古代中又称“计策”,“计谋”,简单点说就是指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法,说白了就是解决同一问题的不同解决办法。

羽凌薇的博客 971

同济土木非0基础三个月跨考复旦计算机攻略

跨考cs攻略前言我cs专业课如何复习How to start from zero简历其他复试 前言 建议多去工地/化工厂涡轮增压一下 我 同济土木gpa 3.2/5 挂科 * n 辣鸡项目 * n (padding 简历) 21考复旦计算机专硕 10月-12月 学习+复习 总分392 政治 68;背肖4即可 英语二 78 裸考,(高考英语140+);做点真题,建议据自己情况准备 数学二 142 ;(高考数学接近满分);做真题+模拟题,每天写一张试卷 专业课 104 ,考试生病了,下文展开。 cs专业课

piglake的博客 7236

【小白指南】如何将deepseek引入WPS\Word\Excel中去?

如何将deepseek引入WPS\Word\Excel中去?纯小白都能看的懂,一步步操作就能行

2503_90498422的博客 1万+

【设计模式系列】--策略模式

什么是策略模式 在前面的博文中,小编主要向小伙伴介绍了组合模式,今天这篇博文,我们继续来学习设计模式的相关知识,今天和小伙伴们见面的是策略模式,策略模式英文名字叫Strategy,策略模式属于行为模式的一种,她对一系列的算法加以封装,为所有算法定义一个抽象的算法接口,并通过继承该抽象算法接口对所有的算法加以封装和实现,具体的算法选择交由客户端决定,策略模式主要用来平滑的处理算法的切换。 策略模式结

从手指到键盘,谱出生命的轨迹~~~ 2660

EMC中的RE测试与整改

测试主要测试电子、电气设备或系统在正常工作时自身对外界的辐射干扰强度,包括来自电路板、机箱、电缆及连接线等所有部件的辐射骚扰。分为:磁场辐射和。其中后者较为应用普遍。测试频段根据不同标准要求不一致。手机测试的频段主要为30-1000MHZ。需要注意的是设备在进行RE测试时要求尽可能满配置,满负荷的运行。同时RE也是EMC中的难点。

学海无涯的专栏 1670

策略模式及用例

策略模式用于算法的自由切换和扩展,对应于解决某一问题的一个算法族,允许用户从该算法族中任选一个算法解决某一问题,同时可以方便地更换算法和增加新的算法。策略模式实现了算法定义和算法使用的分离,它通过继承和多态的机制实现对算法族的使用和管理,是一个简单,实用的设计模式。策略模式的定义如下:策略模式又称为政策(Policy)模式,它是一种对象行为型模式。

weixin_46140858的博客 2201

【STM32项目】基于Stm32c8t6-镭射激光打印机的设计(完整工程资料源码)

随着打印技术的快速发展,镭射打印技术也开始得到越来越广泛的应用。这种技术可以被用于在木材、塑料、皮革、织物等各种材料上进行图形打印,并且通常比传统机器更快、更准确和更灵活。

嵌入式技术开发 7198

2025_NIPS_Truthful Aggregation of LLMs with an Application to Online Advertising

大型语言模型(LLMs)生成内容的 revenue 变现是在线广告的下一个前沿领域。我们考虑这样一种场景:广告商旨在影响LLM的回复,而平台则寻求最大化广告商价值并确保用户满意度。核心挑战在于,广告商的偏好通常与用户偏好存在冲突,且广告商可能误报其偏好。为解决这一问题,我们提出MOSAIC——一种拍卖机制,它确保真实申报是广告商的占优策略,并使每个广告商的效用与其对社会福利的贡献保持一致。重要的是,该机制无需LLM微调或访问模型权重,且随着计算资源的增加,可证明收敛到最优微调LLM的输出。

c_cpp_csharp的专栏 79

策略模式

一、策略模式的介绍 1、定义 策略模式定义一组算法,将每个算法都封装起来,并且使它们之间可以互相转换 2、使用场景 3、优缺点 (1)优点 (2)缺点 二、策略模式的实现

weixin_47382783的博客 699

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

设计模式之策略模式(Strategy Design Pattern)

模板模式,是11种行为型模式之一。在 GoF 的《设计模式》一书中,它是这样定义的:Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from clients that use it.翻译成中文就是:定义一系列算法(策略),封装每一个算法(策略),并使它们可以互换。使算法(策略)可以独立于使用它的客

xjj1314的专栏 427

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

23种设计模式之策略模式(Strategy Pattern)

本篇文章将23种设计模式中的策略模式,此篇文章为一天学习一个设计模式系列文章,后面会分享其他模式知识。

小威的博客 1万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

设计模式-策略模式-Strategy Pattern

策略模式(Strategy Pattern)是一种行为型设计模式,它定义了一系列的算法,并将每一个算法封装起来,使它们可以互换使用,算法的变化不会影响使用算法的用户。策略模式的优点包括算法的封装和切换的灵活性,以及算法可独立于使用它的客户端变化。:如果算法的实现非常复杂,或者算法可能会随着时间而变化,策略模式可以帮助管理这种复杂性,使得算法的变化不会影响到使用算法的代码。:在需要根据不同条件动态切换算法的场景中,策略模式可以提供灵活的算法切换机制,例如,根据输入数据的特性选择不同的算法。

wesigj的博客 1455

C++设计模式——策略模式(Strategy Pattern)

C++设计模式——策略模式(Strategy Pattern) 微信公众号:幼儿园的学霸 目录 文章目录C++设计模式——策略模式(Strategy Pattern)目录定义实现示例传统的策略模式实现使用函数指针实现策略模式工厂模式和策略模式对比总结参考资料 定义 Define a family of algorithms,encapsulate each one,and make them interchangeable. 定义一组算法,将每个算法都封装起来,并且使它们之间可以互换 策略模式是指定

leonardohaig的博客 4769

设计模式-策略模式(Strategy Pattern)

设计模式-策略模式(Strategy Pattern)

weixin_45226668的博客 1505

设计模式:策略模式(Strategy Pattern)

策略模式是一种行为型设计模式,它定义了一系列算法,把它们一个个封装起来,并且使它们可以相互替换。这样,算法的变化不会影响到使用算法的客户。

TechNomad的博客 1260

设计模式之策略模式(DesignPattern of Strategy)

C++版设计模式之策略模式

一路Coding 592

23种设计模式-19策略模式(Strategy Pattern)

策略模式是在开发中最常见的设计模式之一,本文介绍了策略的基本原理及使用场景,以及基于 java 代码的普通实现和基于Spring 的实现案例。

不开心就吃辣 1871

设计模式之策略模式(Strategy Pattern)

设计模式中有六大原则和二十三设计模式。 其中六大原则分别为:单一职责原则、开闭原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特原则。 二十三设计模式:单例模式、Builder 模式、原型模式、工厂方法模式、抽象工厂模式、策略模式、状态模式、责任链模式、解释器模式、命令模式、观察者模式、备忘录模式、迭代器模式、模版方法模式、访问者模式、中介模式、代理模式、组合模式、适配器模式、装饰模式、享元模式、外观模式、桥接模式。

Mr_Four 607

设计模式教程:策略模式(Strategy Pattern)

定义一系列算法,将每个算法封装起来,并让它们可以互换,使得算法的变化独立于使用算法的客户。

遇见伯灵说的博客 977

每天一个设计模式之策略模式(Strategy Pattern)

策略模式的适用场景是,当一个系统中只有算法策略变化,而其他都不变,这时候应当将算法隔离开,策略模式就是解决这类问题的模式。

Dive Deep into The Knowledge 468

【设计模式】策略模式(Strategy Pattern)详解

策略模式(Strategy Pattern)是一种行为型设计模式,

qq_59344127的博客 1839

Java设计模式--策略模式【Strategy Pattern】

策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。    策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来说,就是:“准备一组算法,并将每一个算法封

CoderLover 541

Java设计模式之策略模式(Strategy Pattern)

一、什么是策略模式 策略模式(Strategy Pattern)是一种简单常用的设计模式,也叫做政策模式(Policy Pattern),它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。 ...

qq_36697880的博客 367
上一篇: 奇怪bug解决经历
下一篇: 设计模式--访问者模式
CodersCoder
博客等级 码龄10年 90粉丝 258原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值