我有一个泛型Vector<T>
类和一个泛型Matrix<T>
类,我想知道让两个类都实现一个接口是否是个好主意。
基本上,我正在实现两种算法:AlgorithmA 和 AlgorithmB,它们都执行非常相似的操作(重置、平均...等),但使用不同的算法并作用于不同的结构:
AlgorithmA
使用Vector<double>
while AlgorithmB
uses 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
复制了许多操作符/克隆...等方法,我觉得这可以避免,也许使用泛型?
谢谢 !