Паттерн Декоратор на C#

Паттерн декоратор как его еще называют оберткой, динамически наделяет объект новыми возможностями и является гибкой альтернативой субклассированию в области расширения функциональности.

Давайте представим проблему мы разрабатываем программную часть кофейного автомата. В начале у нас автомат умел только выдавать названия сорта кофе и готовить его, а также рассчитывал его стоимость. В автомате у нас находилось не сколько сортов кофе, соответственно нам, согласно ООП, пришлось бы создать абстрактный класс, в котором было название кофе и его стоимость, а также наследники — это сорта кофе и переопределенная стоимость каждого из них, мы потратили уйму времени на отладку и стабильность работы автомата. Через месяц нам сказали разработать возможность что бы наш автомат так же добавлял еще и сливки в кофе, начинки в виде мороженного, шоколада итд. А также предупредили что в дальнейшем возможно будут добавлены новые начинки к кофе и сами сорта кофе, а может даже и газированные напитки автомат!! Представляете какой это кошмар, если каждый раз придется все переписывать заново? Но все это можно предотвратить без особых усилий используя паттерн Декоратор.

Ниже представлена реализация паттерна Декорато на C#

 

Обновлено: 12.01.2022 — 15:29

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.