Я хочу сделать программу, которая делает систему ввода заказов на напитки.(я, вероятно, сделаю описание, стоимость)
Я хочу использовать шаблон Decorator и шаблон наблюдателя.Я сделал рисунок UML и сохранил его в виде картинки для удобного просмотра.Этот сайт не позволяет мне загружать как документ Word, поэтому мне нужно загрузить фотографию - я надеюсь, что ее легко просмотреть ....
Мне нужно знать, правильно ли я выполняю шаблоны UML / дизайна, прежде чем двигаться дальше.к части кода.
Напиток - мой абстрактный класс компонента.Эспрессо, houseblend, darkroast - мои конкретные предметные классы ..
У меня также есть класс декораторов приправы молоко, мокко, соя, кнут.будет моим наблюдателем?потому что они были бы заинтересованы в изменении данных к стоимости?
Теперь, будет ли эспрессо, домашняя посуда и т. д. моим СУБЪЕКТОМ, а приправы - моим наблюдателем?Моя теория состоит в том, что Стоимость - это изменения, и что приправы должны знать об изменениях?
Итак, subject = esspresso, houseblend, darkroast и т. Д. // они содержат стоимость ()
Наблюдатель = молоко, мокко, соя, кнут?// они содержат стоимость ()
Будут ли конкретные компоненты и молоко, мокко, соя, кнут?был бы декоратором!
Итак, следуя хорошим методам разработки программного обеспечения «дизайн для интерфейса, а не реализация» или «выявлять вещи, которые отличаются от тех, которые не делают»,
мне бы понадобился интерфейс с поведением затрат?
Если вы посмотрите на UML, то увидите, куда я иду с этим, и увидите, правильно ли я реализую шаблон наблюдатель + декоратор?Я думаю, что декоратор правильный.
, поскольку картинка не очень хорошо видна, я подробно опишу здесь классы:
Класс напитка (зарегистрировать наблюдателя, удалить наблюдателя, уведомить наблюдателя, описание)
эти классы относятся к классам конкретных напитков
эспрессо, домашний напиток, темный жар, без кофеина (стоимость, getdescription, setcost, стоимостный обмен)
класс интерфейса наблюдателя (обновление) //стоимость?
интерфейс класса поведения класса (стоимость) // как это меняется?
класс декоратора приправ (getdescription)
конкретные классы, которые связаны с 2 интерфейсами и декораторомявляются: молоко, мокко, соя, кнут (стоимость, описание, обновление) Это мои классы декоратор / упаковщик.
Спасибо ..
ЕстьЕсть ли способ сделать эту картинку больше?