我要在这里颠倒过来
我正在尝试做的是创建一个处理不同类型票证的工厂。所以我创建了一个 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
}
我收到一条错误消息,说这不是一个有效的实现,因为返回类型是 MocRequest 而不是 ITicket。我认为 MocRequest 在这个阶段是 ITicket,事后看来,我想它有点循环,所以它不起作用。返回类型需要是 MocRequest 以便它仍然可以使用。
我已经尝试将界面制作成更像的东西,ITicket<T>
但是我仍然必须在工厂中指定票证类类型,这会违背目的。
所以这里的目标是在工厂中创建一个可以处理这些东西的静态方法。我这样做对吗?我该如何进行这项工作?还是我仍然坚持使用多种方法来处理它们?TIA