这周在项目中为了实现一个树形图,所以写了一个类,随着功能的增加,这个类越来越多,代码量也就越来越多,易读性很低,所以打算按功能将代码抽离到新的文件,就想到了类的继承,但是一般的类都是单继承,那么怎么实现多继承呢?
引入一个概念混合模式,在修饰器的基础上,可以实现Mixin
模式。所谓Mixin
模式,就是对象继承的一种替代方案,中文译为“混入”(mixin),意为在一个对象之中混入另外一个对象的方法。看下方代码:
新建base.js文件
class base {
constructor () {
};
init () {};
setData () {};
resize () {};
_upadte () {};
_initCanvas () {};
}
export default base
创建nodesMixins.js文件
const nodesMixin = (superClass) => class extends superClass {
/**
* 创建节点画布
*/
_buildNodesCanvas () {
console.log('node');
};
};
export default nodesMixin
创建linksMixins.js文件
const link