Transactional / OOD• Patterns: Factory, Observer
Hotel Management
Hard
Problem Summary
Design a hotel management dashboard managing rooms, dynamic pricing, service bookings, and checkouts.
Functional Scope
- Rooms categories: Single, Double, Suite, Deluxe.
- Dynamic price adjustment based on occupancy, season, and room class.
- Support reservation lifecycle: Booked, CheckedIn, CheckedOut, Cancelled.
Entity-Relationship (ER) Schema
Hotel [1] <---> [*] Room Room [1] <---> [*] Reservation Reservation [1] <---> [1] Customer Reservation [1] <---> [1] Bill
Design Approach
Separate Reservation entities from Room entities. Use state patterns for Room cleaning flows, and lock rooms during booking transactions.
Core Classes & Models
Hotel (Rooms map, reservations)Room (Room number, Category, Status: Free, Occupied, OutOfOrder)Reservation (Customer, Room, Duration, Bill)
Code Blueprint
public class Room {
private String roomNo;
public synchronized boolean checkIn() { return true; }
}