私はここでひっくり返りそうです
私がやろうとしているのは、さまざまな種類のチケットで機能するちょっとしたファクトリーを作成することです。そこで、次のような署名を持つ ITicket インターフェイスを作成しました。
GetOpen();
GetById(int id);
これらのメソッドは、同じチケット タイプのインスタンスまたはインスタンスのリストを返す必要があるため、インターフェイスを次のようにすると思いました。
List<ITicket> GetOpen();
ITicket GetById(int id);
したがって、実際には、次のようなファクトリ メソッドを作成したいと考えています。
public static List<ITicket> GetOpen(ITicket ticket)
{
return ticket.GetOpen();
}
たとえば、クラス MocRequest に戻り、次のように List GetOpen() メソッドを実装しました。
public List<MocRequest> GetOpen()
{
//implementation grabs a bunch of MocTickets out of the database
and converts them into instances of the MocTicketClass and returns them
}
戻り値の型が ITicket ではなく MocRequest であるため、これは有効な実装ではないというエラーが表示されます。この段階では、MocRequest は ITicket であると考えていましたが、後から考えると、少し循環的で機能しないと思います。戻り値の型は、引き続き使用できるように MocRequest である必要があります。
インターフェイスをより似ITicket<T>
たものにすることを実験しましたが、それでもファクトリでチケットクラスタイプを指定する必要があり、目的に反します。
したがって、ここでの目的は、この処理を処理する単一の静的メソッドをファクトリに作成することでした。私はこれを正しい方法で行っていますか?どうすればこれを機能させることができますか? それとも、それらを処理するための複数のメソッドを作成するのにまだ行き詰まっていますか? ティア