Typescript @Component“ Decorator”与装饰器模式相关吗?

时间:2018-09-19 15:17:23

标签: angular typescript decorator angular-decorator typescript-decorator

.ts组件文件中的@Component({})行称为 Decorator 。这是与装饰器模式有关,还是不相关?

2 个答案:

答案 0 :(得分:0)

它们是相关的,因为您用其他功能来装饰现有的类。它们并不相同,因为打字稿@Decorator是在编译时应用的,而装饰器模式也可以在运行时用于装饰类,例如:

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

程序正在运行时,您仍然可以决定是否要装饰一个类。

答案 1 :(得分:0)

打字稿装饰器:

是编译时间。这是一次但永久的变化,因为装饰的班级与原始班级有所不同。而且很简单,基本上只是一个功能。

常见的情况是一个装饰器应用于不同的类。例如:在Angular中,@injector装饰器适用于各种类并使其可注入。

对于常规装饰器模式:

常见的场景是在一类上使用不同的装饰器。这很繁重。您需要创建装饰器类,装饰器类和原始类的公共父类以及不同的子装饰器类。原始类保持不变,您可以在运行时视需要应用装饰器。

示例:您有一个咖啡课。您可以创建不同的装饰器类:浓咖啡,卡布奇诺咖啡,甚至Expresso +卡布奇诺咖啡。

只需2美分。