好的,伙计们,我正在我的own.Let上做一个公共汽车预订项目,给你们一个我想做的事情的基本想法。
假设我有一个名为“Bus”的总线对象。它基本上有三种方法:
class Bus{
String date;
String seat;
int id;
public void BookSeats(String seat){
this.seat=seat
//code goes for booking seats
} ;
public void journeyDate(String date){
this.date=date
}
public void id(int id){
this.id=id;
}
}一个月有30天,公司只有3辆公共汽车。所以会有三个公共汽车对象。这些措施将是:
Bus A =new Bus ( );
Bus B =new Bus ( );
Bus C= new Bus ( );因此,如果一个名为user1的用户在2019年10月25日( dd/MM/YYYY)预定了id 1的A总线(dd/MM/YYYY)的名为“A1”的座位,那么代码应该是:
A.BookSeats("A1");
A.journeyDate("25/10/2019");
A.id (1);A1座位已经订好了。
现在困扰我的是,假设一个名为user2的用户想要在2019年10月26日预订一个名为“A1”的id 1总线A的座位,那么这个代码将不可能实现,因为它是同一辆公共汽车A对象和座位A1预订了25/10/2019,但不应该预订26/10/2019。
A.BookSeats("A1");
A.journeyDate("26/10/2019");//same bus A object but different
date.
A.id(1);// same id因此,作为解决此问题的一种方法,我希望创建30个总线对象,每个月30天,其中包含30个与其日期相关的唯一I。但这对我来说是个很糟糕的方法。因为公司有三辆巴士。那么,为了解决上述问题,我还可以尝试什么其他的方法或者其他我遗漏的概念呢?
发布于 2019-10-25 18:38:49
这将是一个相当通用的答案,但我觉得它需要更多的空间和格式,而不是评论。本质上,您不想使用您的class Bus来管理座位,您的Bus应该只用于在特定时间管理公共汽车上发生的事情。例如:
公共汽车上的
)
为了调度时间,您希望有一个class Reservation,它应该包含有关某一特定一天的总线的所有信息,例如:
这意味着使用您的示例:
User 1 - Reservation(today, Bus 1, Seat A1)
Bus 1 = all reservations for today city A to city B
A1 is empty - fill it.
User 2 - Reservation(tomorrow, Bus 1, Seat A1)
Bus 1 = all reservations for tomorrow city A to city B
A1 is empty - fill it.
User 3 - Reservation(tomorrow, Bus 1, Seat A1)
Bus 1 = all reservations for tomorrow city A to city B
A1 is filled - cannot save reservation您可以使用您的公共汽车来查看某个时间点--这还应该包括时间、出发时间和到达时间,因为从B城到A城的旅程中有1座A1可供使用。
这样,现在有三辆巴士,但当他们能够买到第四辆巴士时,唯一改变的是安排第四班出发/到达对的能力,然后将其应用于车队中的任何一辆巴士。
https://stackoverflow.com/questions/58563583
复制相似问题