
Паттерн проектирования #supapattern
Decorator (Декоратор) 🎁
Тип: структурный
Суть: позволяет динамически добавлять объектам новую функциональность, создавая над ними некую обёртку. Также объёкт может иметь несколько декораторов.
Применение:
Представьте, что у нас есть класс Coffee. И мы хотим создать дочерние классы Espresso, Latte, Cappuchino. И потом сделать каждый из них с сахаром нам придётся создавать класс EspressoWithSugar, который наследуется от Espresso, LatteWithSugar и так далее. У нас получается огромное количество классов. Мы можем избежать этого создав декоратор
Думаю те, кто работал с vue-class-compoent уже знакомы с декораторами
Также, те кто разрабатывает в связке mobx + react должен был встретить декоратор
Реализация:
Не стал писать собественную реализацию, в связи с тем, что никогда этого не делал и вряд ли в кодерской рутине тебе приспичет сделать это 🙂
Но для примера всё-таки скину чужую реализацию 🎁
Decorator (Декоратор) 🎁
Тип: структурный
Суть: позволяет динамически добавлять объектам новую функциональность, создавая над ними некую обёртку. Также объёкт может иметь несколько декораторов.
Применение:
Представьте, что у нас есть класс Coffee. И мы хотим создать дочерние классы Espresso, Latte, Cappuchino. И потом сделать каждый из них с сахаром нам придётся создавать класс EspressoWithSugar, который наследуется от Espresso, LatteWithSugar и так далее. У нас получается огромное количество классов. Мы можем избежать этого создав декоратор
@‘withSugar
🤭Думаю те, кто работал с vue-class-compoent уже знакомы с декораторами
@‘Component
, @‘Prop
и т.д.Также, те кто разрабатывает в связке mobx + react должен был встретить декоратор
@‘observer
с классовым компонентомРеализация:
Не стал писать собественную реализацию, в связи с тем, что никогда этого не делал и вряд ли в кодерской рутине тебе приспичет сделать это 🙂
Но для примера всё-таки скину чужую реализацию 🎁