6 месяцев назад, я дал интервью ThoughtWorks и был в раунде кодирования.Я хочу улучшить свои навыки OO-проектирования
Я прочитал шаблоны проектирования First First для начала и получил общее представление об общих шаблонах проектирования вокруг.и хотя я сейчас работаю над iOS, я изучаю Objective C. и натолкнулся на различные шаблоны проектирования, применяемые через динамический язык и понимающие вещи.
Однако я все еще хочу быть уверенным в том, что будетПодходящий выбор шаблона используется в этом примере задачи.
и может быть несколько советов о том, как улучшить такие навыки.
Вот проблема.
Есть отельцепь.Есть три ветви LakeWood, Rosewood и XyzWood.и все они 4 типа тарифов в зависимости от комбинации, будь то день будний, выходные, а клиент - вознаграждение или регулярный.
пользовательский ввод - это серия дат, в которые он хочет остаться на одном изОтели и его тип.Выход должен быть лучшим отелем, в зависимости от того, какой отель самый дешевый за весь период проживания.в случае равенства будет рейтинг для каждого отеля, и один с более высоким рейтингом решает связывание.и программа должна быть гибкой, чтобы можно было использовать новый алгоритм, чтобы найти лучший отель, а также, если что-то изменится в структуре отеля или будет добавлено больше отелей.
Я пришел к нам со следующими уроками в терминах Java.
- Отель: с рейтингами, именем и 4 типами тарифов
- Интерфейс HotelFinder, который имеет метод поиска, который возвращает Hotel.
- Класс CheapestHotelFinder, который реализует этот интерфейс иимеет атрибуты типа Customer или Customer, которые могут быть перечислением [не уверен] и списком дат.
- Вероятно, класс Customer, в котором сведениями о клиентах являются даты n типа, и этот клиент передается искателю.
- Можно ли использовать подобный интерфейс для класса отеля?
- и класса системы бронирования Singleton, который сделает всю работу за нас.
Iя застрял здесь.Я надеюсь, что кто-нибудь может помочь мне с дизайном.