C# で ASP.NET MVC を使用しています。サービスクラスを作成しています。Driver サービス インターフェイス (IDriverService) のサービス インターフェイスがあります。
次のメソッド定義があります。
Driver New();
このメソッドをそのまま実装するこのインターフェースの2つの実装があります。
Driver New()
{
return new Driver();
}
Driver New()
{
return new SubclassOfDriver();
}
ご覧のとおり、1 つの実装はベース Driver を返すことによって New メソッドを実装し、もう 1 つは Driver のサブクラス用です。
問題は、「Driver」を返さなければならないインターフェイスを実装することですが、「SubclassOfDriver」を返したい場合があります。結果を必要なドライバーにキャストする必要があると言えますが、これは安全ではなく、コーダーはどのドライバーがインスタンス化されているかを確認するために実装に関する情報を必要とします。これを行う最善の方法は何ですか?
ありがとう