0

これは良いコードと見なされますか? よりクリーンな/より良い方法はありますか? そのため、子クラスは、ストレージ メカニズムから実際にデータを取得する方法について何も知りません。これらのメソッドを使用して機能を構成できるようにするだけです。

base.js

function Base() {}

Base.prototype.getInternal = function(id, cb) {}

module.exports = Base;

child.js

function Child() {}
util.inherits(Child, Base);

Child.prototype.get = function(id, cb) {
  this.getInternal(id, cb);
}

module.exports = new Child();

test.js

var Child = require('child');
Child.get('id', function(err, result) {
});
4

2 に答える 2

0

コードは問題ないようです。私は Node.js の継承方法が気に入っていますが、John Resig の単純な継承 port のようなコードをチェックすることもできます。

ストレージ メソッドをカプセル化する最善の方法については、ストレージ メソッドを渡す依存性注入で行うことができます。これはそれについてのまともな記事です。http://merrickchristensen.com/articles/javascript-dependency-injection.html

于 2012-11-01T02:28:01.163 に答える
0

プロトタイプの継承を正常に適用できます。それについてこれ以上言うことはありません。ただし、機能継承と呼ばれる別のアプローチもあります。Julien Richard-Foyは、関数型の継承が望ましいかもしれないと説得力を持って主張しています。

Java のようなクラスベースの言語では、継承を広範囲に使用することは間違いありません。しかし、プロトタイプベースの言語である JavaScript では、継承をそれほど広範囲に使用することは一般的ではありません。(おそらく、多くの人がプロトタイプの概念に頭を悩ませていないためか、JavaScript にはオブジェクト指向言語に期待される追加機能が多すぎるためです。私には言えません。) JavaScript 開発者はしばしば言語機能を使用する代わりにアダプター、デコレーター、プロキシーなどの設計パターンに頼ります。

非常に重要な設計パターンの 1 つは、依存性注入です。チャーリー・キーがすでに言ったように、このパターンはあなたのケースでは継承に代わるより良い方法かもしれません. node.js での依存性注入の使用について調べたい場合は、この優れた記事を読むか、 Fire Up!をチェックしてください。-私が実装した依存性インジェクター。

于 2014-04-24T21:16:24.413 に答える