Составной шаблон и может ли он использоваться для DailyPay (leaf) и PayPeriod (Composite)?

#design-patterns

#шаблоны проектирования

Вопрос:

Поскольку я довольно новичок в разработке шаблонов и пытаюсь реализовать некоторые из них в своих личных проектах, я не понимаю, применим ли составной шаблон для моего использования. Я пытаюсь рассчитать оплату за один день и сохранить ее в периоде оплаты. DailyPay — это мой «лист», а PayPeriod — мой «составной».

Имеет ли вообще смысл это делать? В этом сценарии я рассчитываю оплату для водителей тягачей с прицепами, которым платят за остановку, пробег и сброс прицепов. Затем пытаюсь отслеживать 7 дней оплаты и рассчитывать еженедельную оплату, а затем ежемесячную.

Ответ №1:

Должен ли я использовать составной шаблон?

Составной шаблон представляет собой абстракцию, которая предполагает интерфейс другой абстракции только для пересылки запросов на несколько экземпляров указанного интерфейса. Он используется не только для деревьев, хотя GoF book использует его в этом контексте:

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

Рассмотрим это:

Составной шаблон

Клиенту требуется IPayPeriod . WeeklyPayPeriod агрегирует чистую оплату из DailyPayPeriod s.