【发布时间】:2017-07-20 10:49:42
【问题描述】:
我正在尝试使用以下设计模式编写一些东西:
void main()
{
document.registerElement('abs-test', Test);
TestExtend test = new TestExtend();
document.body.append(test);
}
abstract class Test extends HtmlElement
{
Test.created() : super.created();
factory Test() => new Element.tag('abs-test')..text = "test";
}
class RedTest extends Test
{
TestExtend() : super() => style.color = 'red';
}
我的目标是创建一个注册到抽象类“Test”的自定义 HtmlElement。这个抽象类“Test”将具有 Test 类型的所有元素都需要具有的一些属性。在此示例中,所有类型为 Test 的元素都需要将单词“test”作为其文本。
但是,我希望那时只允许用户创建具有更具体属性的“Test”子类。在这个例子中,我们有 RedTest,然后将 Test 的颜色设置为红色。生成的 HTML 将是:
<abs-test style="color:red;">test</abs-test>
我有两个问题:
1) 是否可以调用父类的工厂构造函数? (如果没有,是否可以以不需要工厂构造函数的不同方式扩展 HtmlElement)
2) 是否可以用抽象类扩展 HtmlElement?
我已经用不同的构造函数测试了一段时间,但无法使其工作。谁能给点建议?
【问题讨论】:
标签: dart