Я работаю над своим первым проектом Node.js, и я пришел к проблеме ООП, и я не уверен, как решить ее в Node.js.Загрузка параметризованного модуля в Node.js
У меня есть модуль A:
module.exports = A;
function A() {
}
A.prototype.method = function() { return "A";};
//other methods...
и пара других модулей (позволяет сказать, В и С), которые реализуют тот же "интерфейс", как А.
Теперь у меня есть модуль X:
module.exports = X;
function X(impl) {
//choose A, B, or C based on value of impl
}
Таким образом, вопрос, как я могу реализовать X для того, чтобы быть в состоянии сделать:
var X = require("x");
var impl = new X("A");
impl.method(); //returns "A"
Я считаю, что prototype
и __proto__
будут задействованы?
Редактировать: То, что я пытаюсь достичь, - это реализация нагрузки A, B или C на основе некоторого строкового значения (переменная ENV) через стандартизованный интерфейс new X()
, а затем методы доступа A (B, C ...) к этому пример X.
да? возможно, это ваш пример кода, но вы, похоже, не понимаете, как это работает. Или я не понимаю, что вы пытаетесь выполнить. См. Мой ответ за то, что я думаю, что вы пытаетесь сделать. –
X должен иметь фабричный метод, вы должны вернуть либо новый A, новый Bor новый C из X.create (A_B_or_C). – mpm