我有一個通用的Vector<T>
類和一個通用的Matrix<T>
類,我想知道是否有兩個類實現接口是一個好主意。Vector和Matrix類的接口?
基本上,我採取兩種算法:AlgorithmA和AlgorithmB,這兩者的表現非常類似的操作(復位,平均...等),但有不同的算法和作用於不同的結構: AlgorithmA
使用Vector<double>
而AlgorithmB
用途Matrix<Complex>
。
設計我到目前爲止有:
abstract class AlgorithmArray
{
// Operator overloading
}
class AlgorithmAArray : AlgorithmArray
{
private Vector<double> _vector;
// Overrides
}
class AlgorithmBArray : AlgorithmArray
{
private Matrix<Complex> _matrix;
// Overrides
}
我寧願AlgorithmAArray
從Vector<T>
派生並實現接口「IAlgorithmArray
」(而不是抽象類)。無論如何,這些算法然後用於模擬兩個位置之間的傳輸/接收:
public class CommunicationParameters
{
private AlgorithmArray _transmission;
private AlgorithmArray _receiving;
public void Compute()
{
if(_transmission != null)
_transmission.Compute();
if(_receiving != null)
_receiving.Compute()
}
}
是否有更好的方法來處理我的問題?
注:基類AlgorithmArray
重複了許多操作符/克隆...等方法,我覺得這可以避免,也許使用泛型?
謝謝!