0


个人项目正在寻找有关如何从 Java 中的类角度设计我的程序的顶级 OOP 理论,以进行以下数据操作:

  1. 将多个历史数据存储为 CSV 文件。(没有其他的)。
  2. 历史数据位于硬盘上。
  3. 历史数据包括以下类型
    :货币(多种货币)格式都相同。
    湾。期货(多个期货)与货币不同的报价格式。
    C。金属(多种金属) 与货币相同的刻度格式。
  4. 想要通过方法执行以下类型的数据
    操作 对所有历史数据进行通用统计分析。
    湾。具体自己的算法分析历史数据。
  5. 上述结果以表格形式显示

我从期货数据和编写方法等开始,但我非常程序化,
例如:
只有 2 个类,一个包含我所有的方法,另一个只是一个测试类,它通过我创建的对象调用方法。
我继续调用我的同一个数组,该数组为每个效率不高的过程存储了我的滴答数据。
我想使用继承、多态代码重用等原则来做到这一点。

目前我并不关心速度、性能等,而只是从编程的角度来做到这一点。我对此很陌生,我认为这是学习它的最佳方式。
如果我能够在几场数据上做到这一点,那就太好了!
我的系统有 12 GB 的内存。

任何帮助都会很棒!

4

3 回答 3

1

请注意,即将推出一个名为“java-money”的 JSR:http: //jcp.org/en/jsr/detail ?id=354 ( https://github.com/JavaMoney )

不幸的是,这还没有正式可用,所以现在可能想要使用另一个框架:https ://github.com/JodaOrg/joda-money

于 2013-05-26T16:37:00.057 回答
0

你的课

a) 货币(多种货币)格式相同。b) 期货(多种期货)与货币不同的报价格式。c) 金属(多种金属)与货币相同的刻度格式。

那里有三个班。你可以有一些类CurrencyFuturesMetals。这些都属于HistoricalData. 例如:

public class Currency extends HistoricalData
{
    private String data;

    public Currency(String data)
    {
        // Just a mock up.
        this.data = data;
    }
}

如果您认为您将对统计分析进行大量更改,那么您不希望在您实现某些statistics方法的每个类中都进行这些更改。这暗示我,您可能应该移植它到HistoryStatsEngine(或其他)班级。这样,您可以在不更改类本身的情况下更改类的使用方式。

使用这些类

可替代性

因为所有类都是HistoricalData超类型的子类,所以您可以创建一个包含所有这些类的集合,例如:

private ArrayList<HistoricalData> data = new ArrayList<HistoricalData>();

抽象方法

在您的HistoricalData课程中,您可以拥有必要的抽象方法,例如:

public void performCalculation();
于 2013-05-26T16:31:55.153 回答
0

我不喜欢仅仅为了防止重复方法而使用基类的想法。货币如何成为历史数据?这说明了什么?没有什么。

这是一个许多程序员永远不会擅长的棘手问题,这对你想要在这个问题上增加流量而不只是产生程序性问题很有好处。

你并没有真正说出你想做什么样的统计分析。我在概率方面做了很多工作。概率模型围绕将“特征”聚合到分类中的概念,然后通过查看哪个分类器新实例最相似来预测未来。例如,如果我要构建一个逻辑模型来猜测我所知道的 Futures 会发生什么,我会构建一个分类器。很可能会有两种分类,代表哪些成功,哪些失败,然后我会根据我过去的数据进行训练。训练涉及提取每个特征的值并将它们放入分类的分布中。很简单。而且您不想要基类,并且您肯定不想要类型层次结构中的分类。

开始将分析工件构建到类型层次结构中总是一个坏主意,因为根据定义,分析是透视的:明天我可能想用相同的类型做一些完全不同的事情,或者针对完全不同的情况测试它们,例如预测哪些 Futures 是欺诈性的.

于 2013-05-26T16:45:13.240 回答