В дополнение к уже имеющимся на платформе ответам, я бы хотел, чтобы чип в более общем виде. Этот вопрос, на мой взгляд, как-то связано с решением о выборе декоратор над наследования (например, @Component
против extends Component
)
Некоторые из преимуществ использования декораторов являются:
1. Разделение проблем:
Информация внутри декораторов декларативна, они определяют поведение класса, скорее всего, со временем не изменятся и будут использоваться каркасом. Свойства и поля класса - это данные, специфичные для класса, всегда обрабатываются и часто обновляются, и они имеют смысл только внутри самого класса. Эти два типа данных не должны смешиваться.
2.Поддержка нескольких модификаций
Многие языки предотвращают множественное наследование из-за Diamond problem. С другой стороны, один класс может иметь несколько декораторов для разных целей (например, @Component
и устаревшие @RouteConfig
)
«В общем, декораторы позволяют выполнять функции». Это не очень полезно. Языки программирования позволяют выполнять «Выполнение функций» ... – spinkus