, поэтому у меня есть следующий дизайн:
для моделей:
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 здесьпоэтому я даже не уверен, стоит ли мне создавать класс менеджера билетов и просто добавлять эти методы в модель.Я не понимаю, когда вам следует добавлять методы в модель или помещать их в их собственный класс.