Шаблон оформления фасада для инвентаря - PullRequest
2 голосов
/ 05 марта 2011

Мне было интересно, может ли кто-нибудь дать мне пример того, как я могу использовать шаблон фасада в системе инвентаризации.Мой инвентарь - кофе, пакетики и пицца

Я написал классы состояния для проверки заказа и доставки ..

Я не прошу кого-то писать код, мне просто нужны простые классыс любой реализацией.

Я просто хочу иметь возможность заказать инвентарь, проверить, не хватает ли запаса, проверить инвентарь, добавить, удалить, инвентарь под рукой ..

это звучит разумно для использованияфасад в инвентаре?

productFacade Interface class

inventory class
bagel class implements inventory(adding,deleting, stock on hand)
pizza class implement inventory
coffee class implements inventory

Разумно ли использовать шаблон фасада с заказом?

orderfacade

order class(create order)
address class(for delivery of pizza, bagel,etc)
orderline
basket item

Я пытаюсь ввести шаблон фасада в свою программу.моя программа уже использует абстрактную фабрику для создания пиццы.декоратор для приправ на кофе и бублик.

Ответы [ 2 ]

6 голосов
/ 05 марта 2011

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

Как упоминал Алекс, хороший способ думать о вещах - притворяться, что вы клиент.Вы идете в магазин и заказываете бублик и кофе.Что касается вас, вам просто нужно попросить официанта (фасад) принести вам большой дабл-дабл и бублик с травами и чесночным сливочным сыром.Затем официант позаботится о таких деталях, как приготовление кофе, наливание кофе, поджаривание бублика и намазка сливочным сыром.Вы также можете рассмотреть тостер как фасад.Официант заботится только о том, чтобы положить бублик и сдвинуть ползунок вниз.Ему не нужно знать, как тостер преобразует электрический ток, чтобы нагреть катушки и поджарить бублик.

Так что разбейте свою логику заказа на полезные шаги, а затем заключите детали реализации, которые клиент не долженНужно знать, что фасад может сделать для клиента (или делегировать что-то еще).

Надеюсь, это поможет.Я ухожу за дверь, поэтому у меня нет времени на пример кода.Возможно позже вечером, если вопрос еще не загружен хорошими ответами.

1 голос
/ 05 марта 2011

подумайте, что нужно сделать для вас (клиента), чтобы получить чашку кофе. на вашем фасаде у вас будет что-то вроде

+ Coffee order (Size size) 

и внутри у вас будет что-то вроде

order (Size size)
{
   grindBeans (size)
   installFilter ()
   getCup...
etc, etc
   return coffee
}

В общем, фасад упрощает ваше взаимодействие с объектом.

...