策略模式之配置策略

article/2025/8/22 19:15:30

了解策略模式建议大家先看一下这篇

https://www.runoob.com/design-pattern/strategy-pattern.html

步骤一创建一个接口

public interface Strategy {public int love(int a,int b);
}

然后实现对应的接口A和B

public class StrategyA implements Strategy {@Overridepublic int love(int a, int b) {System.out.println("进入++++");return a+b;}
}
public class StrategyB implements Strategy {@Overridepublic int love(int a, int b) {System.out.println("进入-----");return a-b;}
}

创建一个test类用来调用

public class StrategyTest {public static void main(String[] args) {String clazzName = "StrategyA";
//        String clazzName = "StrategyB";try {Strategy a = (Strategy)Class.forName(clazzName).newInstance();int love = a.love(1, 2);System.out.println(love);} catch (Exception e) {e.printStackTrace();}}
}

当clazzName为StrategyA时结果为

当clazzName为StrategyB时结果为

而对于clazzName可以采用配置文件读取的形式,通过配置文件配置对应的执行策略;

注意clazzName记得要是全路径名;

对了这个方式还可以把入参设置成对象等复杂的对象类型,具体就是在接口中声明时声明,其他一样,还要注意要是接口声明方法时的方法作用域


http://chatgpt.dhexx.cn/article/VZD2IWRZ.shtml

相关文章

策略模式--strategy

策略模式 含义: 策略模式(Strategy)属于对象行为型设计模式, 1.主要是定义一系列的算法, 2.把这些算法一个个封装成拥有共同接口的单独的类,并且使它们之间可以互换。 策略模式使这些算法在客户端调用它们的时候能够互…

策略模式(Strategy)

设计模式系列 Strategy 策略模式——对象行为模式 1.意图 定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立使用它的客户而变化。 2.适用性 当存在以下情况时使用Strategy模式 许多相关的类仅仅是行为有异。“策…

CTA 策略分享之三 -- 策略优化

上一个帖子介绍了一个趋势跟踪策略的优化思路,今天我们继续对策略进行分析,找到另外的优化方法。先看回测的权益曲线: 看到在2017 8月份到2018 2月份策略出现了较大的回撤。先定性分析一下,应该是在这段时间内日线级别的图形上震…

证书扩展中的oid

4.1.2.9. 扩展 该字段必须仅在版本为 3 时出现(第 4.1.2.1 节)。 如果存在,该字段是一个或多个证书扩展的序列。 Internet PKI 中证书扩展的格式和内容在第 4.2 节中定义。 为 X.509 v3 证书定义的扩展提供了将附加属性与用户或公钥相关联以及…

OID科普:物联网OID与互联网域名的区别 | 圣笛数控

1.主导机构不同,物联网OID是以全球共同参与的国际标准组织统一分配。各国管理自己境内部分,各国之间又可以互通。安全机制比互联网域名更高,既有高度自治又有全球互通。中国是整个体系中最大的支持者和应用者。 2.表现形式不同,物…

OID技术与物联网、区块链、大数据的关系 | OID科普

一、什么是物联网? 物联网既是网络与物品与企业与人与万物互联,更是信息技术业务和应用。是利用局部网络或互联网等通信技术把传感器、控制器、机器、人员和物等通过新的方式联在一起,形成人与物、物与物相联,实现信息化、远程管…

ArcGIS中ObjectID,FID和OID字段区别

ArcGIS中ObjectID,FID和OID字段区别 当我们创建一个Shapefiles(shp), geodatabase feature classes(gdb中的要素类)或独立的dBase表(dbf)时,ArcGIS会自动为上述三种格式创建一个ID字…

圣笛数控|OID是什么?看OID在未来人类社会生活中的地位

OID定义,OID是什么? OID(Object Identifier 对象标识符),是由国际三大标准组织ISO、IEC、ITU向全球颁布并供各国共同遵守的物品身份标识标准体系,现已被208个国家和地区采用。OID作为全球新物联通识标准&a…

OID科普:OID为什么被称为元标识?

物联网的标识有很多种,包括应用标识、载体标识以及网络标识,我们常见的 IC 卡、二维码、RFID 及传感器都可归为载体标识。当需要用到不同体系下的标识符时,如何处理不同标识符之间的兼容性等问题呢?这个时候,三大国际组…

SIFT+RANSAC做图像矫正

做图像矫正时使用了一下sift算法,尽管sift确实很牛,但还是会出现一些误匹配,直接计算两张影像的单应矩阵会出现很大误差,因此可以在计算时使用RANSAC算法在单应矩 阵的约束下剔除误匹配,并计算单应矩阵,基…

opencv沿斜线切割图片

opencv沿斜线切割图片 opencv如果沿水平或者数值的线来切割图片,是很简单的。但是,如果沿着斜线,那么就不能直接进行切割了。 我的思路是,根据直线上两点来确定直线方程,然后,逐个遍历图像中元素&#xf…

mean shift 图像分割(三)

Reference: [1] Mean shift: A robust approach toward feature space analysis, PAMI, 2002 [2] mean shift,非常好的ppt ,百度文库链接 [3] Pattern Recognition and Machine Learning, Bishop, 2006,Sec 2.5 [4] Computer Vision Algorithms and App…

mean shift 图像分割(一、二、三)

MeanShift图像分割算法:大概是将复杂的背景,通过粗化提取整体信息,进而将图像分割。 接下来我想,将会抽出一部分时间,研究一下这个算法,以最终实现手势形状提取。 《Mean Shift: A Robust Approach Towar…

OpenCV在图像上画正弦曲线(c++)

写在前面:欢迎来到「湫歌」的博客。我是秋秋,一名普通的在校大学生。在学习之余,用博客来记录我学习过程中的点点滴滴,也希望我的博客能够更给同样热爱学习热爱技术的你们带来收获!希望大家多多关照,我们一…

基于mean shift的图像分割

1 mean shift算法 Mean Shift 这个概念最早是由Fukunaga 等人[1]于1975 年在一篇关于概率密度梯度函数的估计中提出来的,其最初含义正如其名,就是偏移的均值向量,在这里Mean Shift 是一个名词,它指代的是一个向量,但随着Mean Shift 理论的发展,Mean Shift 的含义也发生了变化,如…

OpenCV对图像进行切边

1、概述 案例:使用OpenCV对旋转图片及正常图片进行切边。 A:对正常图片切边的步骤 1.加载图像 2.对图像进行灰度化 3.边缘检测 4.轮廓发现 5.找出符合目标的最大外接矩形,并使用矩形的四个坐标点绘制线 6.根据找到Rect在原图上切除ROI区域 7.…

双曲正割matlab求解

,取N305,且x在区间内按照5等分取值。 matlab中对于双曲正割函数可以直接用sech求解,自己编代码的过程永远无法逃避,,因为这个有现成的,那个可能没有,遇到棘手复杂的任务,全靠现成调包…

MATLAB:图像裁切(imcrop函数)

对图像进行裁切可用imcrop函数,实现过程如下: close all; %关闭当前所有图形窗口,清空工作空间变量,清除工作空间所有变量 clear all; clc; [A,map]imread(peppers.png); %读入图像 rect[75 68 130 112]; …

matlab关于图像切割的一些总结:imcrop,getrect,ndgrid,函数

之前查看这么多人写的博客,乱七八糟的,说法不一还有些有错误,误导人。现在记下来,希望给后来人一点指引。 1.imcrop函数 这个函数是 imcrop的第一二元素代表左上角的横纵坐标,第三四元素代表矩行框的宽高 pic imre…