私はgeneric Vector<T>
クラスとgeneric Matrix<T>
クラスを持っていて、どちらのクラスにもインターフェイスを実装させることをお勧めしますか? AlgorithmAとAlgorithmB、非常に同様の操作を行うどちらも(リセット、平均...等)の異なるアルゴリズムと異なる構造上の行為ではなく: AlgorithmA
はVector<double>
AlgorithmB
しばらくの用途を使用していますベクタークラスとマトリックスクラスのインターフェイスですか?
基本的に、私は2つのアルゴリズムを実装していますMatrix<Complex>
。
私がこれまで持っているデザイン:私はAlgorithmAArray
がVector<T>
から派生し、また、インタフェースのIAlgorithmArray
'(代わりの抽象クラス)を実装していことを好むだろう
abstract class AlgorithmArray
{
// Operator overloading
}
class AlgorithmAArray : AlgorithmArray
{
private Vector<double> _vector;
// Overrides
}
class AlgorithmBArray : AlgorithmArray
{
private Matrix<Complex> _matrix;
// Overrides
}
。私の問題にアプローチするためのより良い方法が
public class CommunicationParameters
{
private AlgorithmArray _transmission;
private AlgorithmArray _receiving;
public void Compute()
{
if(_transmission != null)
_transmission.Compute();
if(_receiving != null)
_receiving.Compute()
}
}
あります。とにかく、これらのアルゴリズムは、2つの場所の間の受信/送信をシミュレートするために使用されていますか?
注:基本クラスAlgorithmArray
は、operator/cloning ... etcメソッドの多くを複製します。これはおそらくジェネリックを使用して回避できますか?
ありがとうございます!