私は抽象クラス(それを呼びましょう)と、、、などのいくつかの継承されたクラスを持つモデルを持っています。これVehicle
は本質的に現実世界の問題の単純化されたバージョンです。Bike
Motorbike
Car
Van
abstract class Vehicle
int ID;
int WheelCount;
string OwnerName;
class Bike
DateTime lastSafetyCheck;
class Motorbike
int EngineCC
class Car
double EngineSize
class Van
double StorageCapacity
私のシステムにはIEnumerable<Vehicle>
、これらのそれぞれを含むがあります。これはスレッドセーフなシングルトンクラスに含まれており、基本的にインメモリデータベースとして機能します。
アプリケーションに(シングルトンクラスまたは個別のクラスのいずれかで)特定のタイプのVehicleのみをクエリできるメソッドが必要です。
当初、私は次のような方法を検討しました。
internal IEnumerable<T> GetVehicles<T>() where T : Vehicle
T
取得したいタイプを指定するタイプを提供できるようにするためです。その後、ロジックを実行するためにtypeof()を使用できることを知っています。しかし、私が理解できないのは、自分の値を返す方法です。私は基本的にメソッドの内容に苦労していて、もっと意味のあるデザインパターンがそこにあるに違いないと思い始めています。
AK