gpt4 book ai didi

java - java中实现大量具有相似签名的方法的最佳设计模式是什么?

转载 作者:行者123 更新时间:2023-12-01 18:57:28 25 4
gpt4 key购买 nike

我想实现下面类的所有 cdl(烛台图案)方法 TA-Lib .

大约有 61 种 cdl 分析方法,其中大约 90% 具有相似的签名,只是它们的核心实现不同。

例如:

 public RetCode cdl2Crows(int startIdx,
int endIdx,
double inOpen[],
double inHigh[],
double inLow[],
double inClose[],
MInteger outBegIdx,
MInteger outNBElement,
int outInteger[])


public RetCode cdl3BlackCrows(int startIdx,
int endIdx,
double inOpen[],
double inHigh[],
double inLow[],
double inClose[],
MInteger outBegIdx,
MInteger outNBElement,
int outInteger[])

我在想是否可以将方法名称作为参数从源类传递,然后使用反射调用方法,以避免重复代码

public invokeAnalytic(String analyticMethodName, common params .....)
{
// using reflection invoke analyticMethodName of Core class
// and pass rest of the params
}
  1. 对于这种情况,Java 中最好的设计模式是什么?
  2. 如果我在这种情况下使用反射,是否会出现性能问题?

最佳答案

如何将参数包装在不可变的 Value Object 中?

例如

MyValueObject params = new MyValueObject(int startIdx,
int endIdx,
double inOpen[],
double inHigh[],
double inLow[],
double inClose[],
MInteger outBegIdx,
MInteger outNBElement,
int outInteger[]);

// ....
someObject.cdl2Crows(params);
// ...
someObject.cdl3BlackCrows(params);

关于java - java中实现大量具有相似签名的方法的最佳设计模式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13422603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com