我要翻倒在這裏如何在仍保持動態的情況下指定接口返回類型?
我想要做的是創建一個適用於不同類型票證的工廠。所以我創建一個具有幾個特徵像
GetOpen();
GetById(int id);
現在,這些方法都需要返回一個實例或同一張票類型的實例列表的ITicket接口,所以我想我有接口像這樣
List<ITicket> GetOpen();
ITicket GetById(int id);
因此,在實踐中,我希望建立工廠方法是這樣的:
public static List<ITicket> GetOpen(ITicket ticket)
{
return ticket.GetOpen();
}
好了,現在比如,我回到我的課MocRequest和實施將L像這樣的IST 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
這是測試嗎? Moc讓我相信它可能是,如果有的話,還有其他方法可以在這裏使用。 –
是的,我只是想概念化這將如何工作,所以備用解決方案也會有所幫助 – Sinaesthetic