Node.jsのクリーンなデザインパターンを探して、それぞれが別のモジュールを参照するときに2つのクラスを別々のモジュールに入れることができます。相互依存オブジェクトのモジュールパターン
例:Node
とNodeCollection
のオブジェクトがあります。明らかにNodeCollection
は、Node
が何であるかを知っていなければなりませんが、Nodes
自体は子供のためにNodeCollection
オブジェクトを保持しています。
現在、Nodeコンストラクタは必要なときに設定しています。
nodeCollection.js
const Node=require('./node')(NodeCollection)
function NodeCollection(....){
// do stuff with Node objects
}
module.exports = NodeCollection'
のNode.js
function Node(NodeCollection){
function _Node(...){
this.children = new NodeCollection();
//do stuff
}
return _Node;
}
module.exports = Node;
これを設計するための良い方法はありますか?
補足:いくつかの誤解があるようです。私は、NodeCollectionまたはNodeオブジェクトのより良い設計を求めていません。これらはおもちゃの例として提供されました。しばしば、このような例では、2つのクラスはお互いに無関心ではありません。私は、そのような配置に直面したときにNode.jsモジュールを設定する方法を探しています。私は両方のクラスを同じモジュールに入れて問題を解決することができましたが、それらは自分たちのファイルを保証するのに十分な大きさと複雑さを持っています。 ありがとうございました
タイプスクリプトを検討してください。 :) – Proximo
なぜあなたはモデルコンストラクタにコレクションコンストラクタを渡していますか?それぞれのファイルにモデルとコレクションの定義だけを 'require 'します。 –
私が説明したように、NodeオブジェクトはNodeCollectionを使用して子を保持する必要があるため、 – AdamW