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