This repository has been archived on 2022-11-09. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
Alexander Zhirov 6bb9e8a003 lesson_3 2021-11-01 21:04:47 +03:00
lesson_3 lesson_3 2021-11-01 21:04:47 +03:00
README.md lesson_3 2021-11-01 21:04:47 +03:00

README.md

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

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

Принцип:

  • Согласно принципу открытости/закрытости системы должны проектироваться так, чтобы их закрытые компоненты были изолированы от новых расширений.