1

「新しい」クラスを既存のインスタンスにアタッチする最善の方法は何だろうと思っています。

例: IPC チャネルを介して通信できるように、既存の IPC クラス インスタンスに「拡張」する必要がある「ワーカー」クラスがあります。

class Worker {
    constructor(ipc) {
        this.__proto__ = ipc;
        this.__proto__.constructor = Worker;
    }
}

そして、次のように使用できます。

const worker = new Worker(myCurrentIpc);
worker.send('blabla') /* Calls super instance ipc method */

これはパフォーマンスを低下させるため、悪い習慣です.. https://developer.mozilla.org/nl/docs/Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf

この場合、「send」メソッドは何百万回も呼び出されます。

このようなユースケースでは、何をお勧めしますか?

Worker インスタンスですべての関数を再度作成し、そのメソッドで ipc.func() を呼び出すこともできますが、これもアンチパターンのように感じます。

ありがとう

説明:

「ホスト」ワーカー (メイン) が 1 つあります。これには、既に初期化された IPC (node-ipc) インスタンスがあります。

ワーカー「子」を作成するときはいつでも、(既存の) 親 IPC インスタンスを使用して子ワーカーに接続したいと考えています。

したがって、新しい Worker({ipc:ipc}) を作成するときはいつでも、worker.prototype を IPC インスタンスにアタッチできると便利です。したがって、worker.send() と IPC インスタンスを実行するだけです。そのメイン - >子チャネルから行くことを知っています..

4

3 に答える 3