Связан ли Typescript @Component "Decorator" с шаблоном декоратора? - PullRequest
0 голосов
/ 19 сентября 2018

Строка @Component({}) в компонентном файле .ts называется Decorator .Это связано с шаблоном декоратора или они не связаны?

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

Декоратор машинописного текста:

Время компиляции.Это одноразовое, но постоянное изменение, поскольку декорируемый класс отличается от оригинального.И это просто, в основном просто функция.

Обычный сценарий - один декоратор, применяемый к разным классам.Например: в Angular декоратор @injector применяется к различным классам и делает их инъекционными.

Для общего шаблона декоратора:

Общий сценарий - это разные декораторы в одном классе.Это довольно тяжело.Вам необходимо создать класс декоратора, общий родительский класс для класса декоратора и исходного класса, а также различные дочерние классы декоратора.Исходный класс остается неизменным, и вы можете применять декоратор по своему усмотрению во время выполнения.

Пример: у вас есть класс кофе.Вы можете создавать разные классы декораторов: эспрессо, капучино, даже кофе эспрессо + капучино, если хотите.

Только мои 2 цента.

0 голосов
/ 19 сентября 2018

Они связаны, так как вы украшаете существующий класс дополнительными функциями.Они не одинаковы, потому что машинописный текст @Decorator применяется во время компиляции, в то время как шаблон декоратора также может использоваться для украшения класса во время выполнения, например:

let armoredenemy = new Armored(new Enemy())
let enemy = new Enemy()

во время работы программы, вы все еще можете решить, хотите ли вы украсить класс или нет.

...