我需要在我的应用程序中使用矩阵类进行操作,如特征值分解,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大师请指教 .
谢谢
标记