Diseñe un sistema de reserva de hotel en línea como OYO Rooms

Necesitamos diseñar un sistema de reserva de hotel en línea donde un usuario pueda buscar un hotel en una ciudad determinada y reservarlo. Esta es una pregunta de diseño de programación orientada a objetos, por lo que no he escrito el código completo en esta solución. He creado las clases y los atributos solamente.
Solución:
Clases principales:
1. Usuario 
2. Habitación 
3. Hotel 
4. Reserva 
5. Dirección 
6. Instalaciones
 

Java

// Java code skeleton to design an online hotel
// booking system.
Enums:
 
public enum RoomStatus {
    EMPTY
        NOT_EMPTY;
}
 
public enum RoomType {
    SINGLE,
    DOUBLE,
    TRIPLE;
}
 
public enum PaymentStatus {
    PAID,
    UNPAID;
}
 
public enum Facility {
    LIFT;
    POWER_BACKUP;
    HOT_WATER;
    BREAKFAST_FREE;
    SWIMMING_POOL;
}
 
class User {
 
    int userId;
    String name;
    Date dateOfBirth;
    String mobNo;
    String emailId;
    String sex;
}
 
// For the room in any hotel
class Room {
 
    int roomId; // roomNo
    int hotelId;
    RoomType roomType;
    RoomStatus roomStatus;
}
 
class Hotel {
 
    int hotelId;
    String hotelName;
    Address address;
 
    // hotel contains the list of rooms
    List<Room> rooms;
    float rating;
    Facilities facilities;
}
 
// a new booking is created for each booking
// done by any user
class Booking {
    int bookingId;
    int userId;
    int hotelId;
 
    // We are assuming that in a single
    // booking we can book only the rooms
    // of a single hotel
    List<Rooms> bookedRooms;
     
    int amount;
    PaymentStatus status_of_payment;
    Date bookingTime;
    Duration duration;
}
 
class Address {
 
    String city;
    String pinCode;
    String state;
    String streetNo;
    String landmark;
}
 
class Duration {
 
    Date from;
    Date to;
 
}
 
class Facilities {
 
    List<Facility> facilitiesList;
}

Permítanme explicar acerca de las clases y las relaciones entre sí.

Las enumeraciones definidas aquí se explican por sí mismas. Las clases Usuario, Habitación y Dirección también se explican por sí mismas. La clase Instalaciones contiene una lista de instalaciones (enum) que ofrece el hotel. Podemos agregar más instalaciones en la enumeración de instalaciones si es necesario. La clase de duración tiene dos atributos «desde» y «hasta», lo cual es obvio.

Ahora, la clase “Hotel” contiene: 
1. Lista de habitaciones (Room class) // esta es la lista de habitaciones que tiene el hotel 
2. Clase de dirección // su dirección 
3. Clase de instalaciones // las instalaciones que tiene
La clase “ Booking” contiene: 
1. Usuario // información sobre el 
2. Hotel // Información sobre el hotel 
3. Lista de habitaciones 
4. Estado de pago, etc.
Otros campos de esta clase también se explican por sí mismos.

Este artículo es una contribución de Pooja Kamal . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *