私は最初のNode.jsプロジェクトに取り組んでおり、Node.jsでどのように解決できるかわからないOOP問題が発生しました。Node.jsでパラメータ化されたモジュールがロードされています
私は、モジュールAいます
module.exports = A;
function A() {
}
A.prototype.method = function() { return "A";};
//other methods...
とA.今
と同じ "インターフェース" を実装カップル他のモジュール(BとCと言うことができます)、私はモジュール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__
が関与すると思いますか?
編集:私が達成しようとしているのは、標準化されたインターフェイスnew X()
を介していくつかの文字列値(ENV変数)に基づいて読み込み実装A、BまたはCであり、その後A(B、C ...) Xのインスタンス。
ハァッを?おそらくあなたのサンプルコードですが、これがどのように動作するのか把握していないようです。あるいは、私はあなたの達成しようとしていることを理解していません。あなたがしようとしていると思っていることについて私の答えを見てください。 –
Xにはファクトリメソッドが必要です。新しいA、X.create(A_B_or_C)から新しいBor新規Cを返す必要があります。 – mpm