我正在處理我的第一個Node.js項目,並且遇到了OOP問題,我不確定Node.js如何解決。Node.js中的參數化模塊加載
我有一個模塊A:
module.exports = A;
function A() {
}
A.prototype.method = function() { return "A";};
//other methods...
和幾個其他的模塊(可以說B和C)實現相同的 「界面」 A.
現在,我有模塊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__
會涉及?
編輯:我試圖實現的是基於一些字符串值(ENV變量)通過標準化接口new X()
加載實現A,B或C,然後通過該方法訪問A(B,C ...)的方法X的實例。
吧?也許它是你的示例代碼,但你似乎沒有理解這是如何工作的。或者我不明白你想要完成什麼。看到我的答案,我認爲你正在嘗試做什麼。 – 2012-03-07 09:48:15
X應該有一個工廠方法,您應該從X.create(A_B_or_C)返回新的A,new Bor new C. – mpm 2012-03-07 11:54:30