对于组件和指令,Angular2中有哪些装饰器?

时间:2016-04-19 10:48:26

标签: typescript

这个问题更多的是装饰者是如何与设计模式和继承与组合相关的。

我在Python中看过装饰器,现在在AngularJS 2的Typescript中看到了它们。它们看起来像:

import {Component} from 'angular2/core'

@Component({
    selector: 'courses',
    template: `
        <h2>These are the Courses</h2>
        `
})
export class CoursesComponent {

    // ...

}

并且装饰器看起来与指令非常相似。

据我所知,我们通常在过去使用继承来增加&#34;或&#34;扩展&#34;我们的班级,

class Dog < Animal     # in Ruby

这称为白盒重复使用。作文是黑盒重复使用。

组件和指令的装饰器真的是黑盒重复使用吗?也就是说,吸收一个对象,并将其视为内部事物,并打开完全相同的界面,现在,无论收到什么消息,都要做一些额外的事情,然后将完全相同的消息传递给&#34;吸收的物体&#34;。

所以在上面的例子中,CoursesComponent是装饰者并吸收Component对象吗?在某种程度上,它也可以被认为是CoursesComponent继承自Component - 只是因为我们使用Decorator并且是一种形式的组合,因此是黑盒子重复使用,制作它比继承更清洁?

实际上,如果Component将所有属性声明为私有,以便子类不能触及它们,并让我们的自定义组件继承自Component,那么会有什么不同。它不像使用装饰器一样干净吗?

0 个答案:

没有答案