【发布时间】:2011-05-31 17:58:54
【问题描述】:
我需要在我的应用程序中使用矩阵类来进行特征值分解、LUDecomposition 等操作 以及正常的矩阵运算,例如乘法,加法,转置等。 我决定现在使用 jama,因为我对它非常熟悉,因为我目前 处理小型数据集。
但可能稍后,我想转向更好的矩阵库,如 ejml 或者随着数据量的增长,一些未来的发明。 我应该如何设计我的矩阵类,使其不绑定到特定的实现? 我想要一个类似下面的界面。
class MyMatrix{
public MyMatrix addWithAnother(MyMatrix b){
...
}
public MyMatrix multiplyWithAnother(MyMatrix b){
...
}
public double[][] getData(){
..
}
public SomeEigenDecomposition getEigenValueDecomposition(){
...
}
我应该将实现矩阵类(jama Matrix 等)作为一个字段并委托调用它吗? 我认为这仍然会使我与 jama 联系在一起。
我怎样才能使上述内容完全不受实现的影响?任何设计模式,请java大师指教。
谢谢
标记
【问题讨论】:
标签: java matrix implementation