С помощью абстрактных классов Reservable (Резервируемый объект, ресурс), Reservation (Резервирование) и Broker (Брокер) можно легко реализовать систему резервирования конкретного ресурса, например гостиничного номера. На Рисунок 4.2 показана иерархия наследования: класс Hotel (Гостиница) является производным от класса Reservable (Резервируемый объект, ресурс), класс HotelReservation — производным от класса Reservation (Резервирование), класс HotelBroker — производным от класса Broker (Брокер).
В этом разделе мы рассмотрим основные моменты реализации примера, которая находится в папке Case Study для этой главы.