【发布时间】:2018-02-24 09:31:43
【问题描述】:
我一直在研究 konvajs (https://github.com/konvajs/konva) 的源代码,我对设计模式很着迷,例如。 src/shape.js (https://github.com/konvajs/konva/blob/master/src/Shape.js):
Konva.Shape = function(config) {
this.__init(config);
};
Konva.Util.addMethods(Konva.Shape, {
__init: function(config) {
this.nodeType = 'Shape';
\\ more code
这里似乎Shape 类的构造函数将参数'config' 传递给尚未声明的__init 方法。 __init 方法也通过 Util 方法 addMethods 添加到类中。对我来说,这似乎是一种灵活的编码方式,也就是说,如果您想添加一些新功能,实用程序类会为您处理它。
此外,定义属性的默认值是由工厂类添加的(例如,参见 shape.js 的底部)。
所以我的问题是:
是否可以在 typescript 中实现类似的设计模式?还是这种设计模式不适用于 OOP 语言(或任何打字稿)。
【问题讨论】:
标签: typescript design-patterns konvajs