.ts组件文件中的@Component({})
行称为 Decorator 。这是与装饰器模式有关,还是不相关?
答案 0 :(得分:0)
它们是相关的,因为您用其他功能来装饰现有的类。它们并不相同,因为打字稿@Decorator
是在编译时应用的,而装饰器模式也可以在运行时用于装饰类,例如:
let armoredenemy = new Armored(new Enemy())
let enemy = new Enemy()
程序正在运行时,您仍然可以决定是否要装饰一个类。
答案 1 :(得分:0)
打字稿装饰器:
是编译时间。这是一次但永久的变化,因为装饰的班级与原始班级有所不同。而且很简单,基本上只是一个功能。
常见的情况是一个装饰器应用于不同的类。例如:在Angular中,@injector装饰器适用于各种类并使其可注入。
对于常规装饰器模式:
常见的场景是在一类上使用不同的装饰器。这很繁重。您需要创建装饰器类,装饰器类和原始类的公共父类以及不同的子装饰器类。原始类保持不变,您可以在运行时视需要应用装饰器。
示例:您有一个咖啡课。您可以创建不同的装饰器类:浓咖啡,卡布奇诺咖啡,甚至Expresso +卡布奇诺咖啡。
只需2美分。