какой шаблон дизайна для построения этого сложного объекта - PullRequest
0 голосов
/ 31 января 2012

Мне нужно создать маршрутный объект, который по сути состоит из других компонентов.

Эти компоненты должны быть добавлены в определенном порядке. Мне нужно убедиться, что когда вещи добавляются не по порядку, нужно выдать исключение / ошибку.

Быстрое прохождение:

Itinerary Build-itinerary():

- AddSegment()
- AddBaggagePolicy()
- AddMisc()

Segment AddSegment(...)

- add departure airport
- add arrival airport
- add departure time
- add arrival time
- add duration (total duration)
- add airline

, где аэропорт и авиакомпания являются типами объектов.

После того, как сегменты сделаны, мне нужно объединить сегменты, чтобы получить начальный отправление к конечному пункту прибытия (поскольку может быть несколько точек перехода от одной точки к другой).

Какую схему я могу использовать при построении этого маршрута?

Ответы [ 5 ]

4 голосов
/ 31 января 2012

Похоже, это недостаточно конкретно.На первый взгляд, я могу охарактеризовать это как «модель строителя».Многие (но не все!) Шаблоны проектирования в Java являются обходными путями из-за отсутствия языковых возможностей.

Фактически, в вашем проекте присутствует запах кода, вы не должны иметь явно произвольную упорядоченную последовательность шагов для созданияобъект.Вместо этого определите данные и передайте их в объект.

Если вы должны построить свой объект подобным образом, то я гарантирую, что любой код, который делает это, является модульным тестированием, используя макет, который поддерживает запись и воспроизведение.стиль издевательства.(Так называемые "строгие издевательства".

2 голосов
/ 31 января 2012

Попробуйте использовать шаблон Builder.Также вы можете поискать другие варианты в категории «Шаблоны для творчества».

Если вы новичок в разработке шаблонов, взгляните на «Шаблоны проектирования в первую очередь» - это в книгах Google (я не знаю, завершено ли илихотя предпросмотр ...)

веселиться :)) 1005 *

2 голосов
/ 31 января 2012

И я не очень хорошо разбираюсь в шаблонах проектирования: я бы начал с шаблона построителя и попытался проверить каждый компонент, добавлен он или нет.По крайней мере, это будет моей отправной точкой: Builder или частный статический внутренний класс.

1 голос
/ 31 января 2012

Когда я слышу слова «строительство» и «заказ», то первым образцом проектирования, который приходит на ум, является Builder.Если вы новичок в разработке шаблонов, я бы порекомендовал вам прочитать «Прикладные шаблоны Java».

0 голосов
/ 01 февраля 2012

Не могу согласиться с @Arafangion, я верю, что иногда необходимо вызывать некоторые вызовы процедур.Я бы порекомендовал изучить шаблон проектирования Factory Method, из того, что я помню, есть хороший пример в книге Head First Design Patterns при приготовлении пиццы:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...