比方说,我有两个子类:在Node JS中的静态方法中有父类使用子类吗?
Male.js
var Person = require('./Person.js');
class Male extends Person {
...
}
module.exports = Male;
Female.js
var Person = require('./Person.js');
class Female extends Person {
...
}
module.exports = Female;
最后,我有这个基类:
Person.js
class Person {
static makePersonBySettings(settings) {
var person;
if(settings.gender == 'male') {
person = new Male(settings.name);
}
else if(settings.gender == 'female') {
person = new Female(settings.name);
}
return person;
}
}
module.exports = Person;
家长的静态方法取决于知道男性和女性的类是什么。我不能在Person.js顶部做require('./Male.js');
,因为男性依赖于Person。
Objective-C,Java等允许您在编译器解决问题时执行此操作。
使用Node JS解决此问题的最佳方法是什么?
我喜欢这一点,最好在基类上有比工厂方法更好的工厂方法 – vittore