【发布时间】:2019-09-29 03:32:06
【问题描述】:
所以我有以下设计:
对于模型:
public class ParentTicket{
protected ticketAttribute1
protected ticketAttribute2
protected ticketAttribute3
//getters and setters here
}
public class ChildTicket1 extends ParentTicket{
private childTicket1Attr1
private childTicket1Attr2
private childTicket1Attr3
//getters and setters here
}
public class ChildTicket2 extends ParentTicket{
private childTicket2Attr1
private childTicket2Attr2
private childTicket2Attr3
//getters and setters here
}
对于票务经理,我有以下内容
public class TicketManager1{
public ArrayList<ChildTicket1> getAlltickets(){
//some implementation
}
public void saveTicketToDB(ChildTicket1 ticket){
//some implementation
}
}
public class TicketManager2{
public ArrayList<ChildTicket2> getAlltickets(){
//some implementation
}
public void saveTicketToDB(ChildTicket2 ticket){
//some implementation
}
}
我对如何改进设计感到困惑,因为现在很难添加更多票务管理器/其他类型的票证(至少我这么认为)
我尝试制作一个由票务管理器实现的接口:
public interface IManageTickets{
public Collection getAllTickets();
public void saveTicketToDB(Ticket ticket);
//some other methods
}
但我似乎无法正确实现它,因为 Ticket 参数不接受子票。
另外,我将在这里采用 MVC 方法,所以我什至不确定是否应该创建票务管理器类并将这些方法添加到模型中。我很困惑何时应该在模型中添加方法或将它们放入自己的类中。
【问题讨论】:
标签: java inheritance interface