首页 > 解决方案 > 如何在不同的旅程日期预订单个巴士对象

问题描述

好的,伙计们,我正在自己做一个公共汽车预订项目。让我给你一个关于我想要做什么的基本概念。

考虑我有一个名为“总线”的总线对象。它基本上有三种方法:

           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;
          }

         }

一个月有三十天,公司只有三辆公交车。所以会有三个总线对象。这些将是:

     Bus A =new Bus ( );


     Bus B =new Bus ( );

     Bus C= new Bus ( );

因此,如果名为 user1 的用户现在在 2019 年 10 月 25 日 (dd/MM/YYYY) 预订 ID 为 1 的巴士 A 的名为“A1”的座位,则代码应为:

    A.BookSeats("A1");
    A.journeyDate("25/10/2019");
    A.id (1);

并且座位 A1 已被预订。

现在困扰我的是,假设一个名为 user2 的用户现在想要在 2019 年 10 月 26 日预订 ID 为 1 的 Bus A 的名为“A1”的座位,那么此代码将不可能,因为它是相同的 Bus A 对象和座位 A1已预订 2019 年 10 月 25 日,但不应预订 2019 年 10 月 26 日

  A.BookSeats("A1");

  A.journeyDate("26/10/2019");//same bus A object but different 
  date.

  A.id(1);// same id

因此,作为解决这个问题的一种方法,我想在一个月的 30 天中创建 30 个总线对象,并使用 30 个与其日期相关联的唯一 ID。但这对我来说是一个非常糟糕的方法。由于公司有3辆公共汽车。那么我可以尝试什么其他方法或我缺少其他概念来解决上述问题。

标签: java

解决方案


这将是一个非常通用的答案,但我觉得它需要更多的空间和格式而不是评论。本质上,您不想使用您class Bus来管理座位,您Bus应该只用于管理特定时间的公共汽车正在发生的事情。例如:

  • 编号/板
  • 公共汽车上的座位(一旦预定)
  • 离开
  • 到达
  • 司机
  • ETC

出于调度的目的,您希望有一个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

您使用巴士查看时间点 - 这还应包括时间、出发和到达,因为巴士 1 座位 A1 在从城市 B 到城市 A 的旅途中可用。

这样一来,现在有三辆公共汽车,但是当他们能够购买第四辆公共汽车时,所有的变化就是能够安排第四对出发/到达,然后将应用于车队中的任何一辆公共汽车。


推荐阅读