2つの "モジュール" PanelManager
とPanel
は可能な限り独立したいので、それらの間の通信にはevents
を使用します。このようにして、別のモジュールが実行されている場合に、モジュールを個別に実行することができます。リスナを設定または削除するだけでモジュールをプラグインまたはアンプラグできます。ファクトリとイベントでオブジェクトを作成するための多目的コンストラクタ
モジュールは、新しいパネルが必要なときはいつでもnewPanel
イベントを送出し、newPanelCreated
イベントをリッスンします。
Panel
モジュールは、newPanel
イベントをリッスンし、新しいパネルを作成し、{detail}
という新しいパネルでカスタムイベントをnewPanelCreated
にディスパッチします。
これを実現するには、Panel
モジュールを2通りの方法で設計できます。最初はPanelFactory
クラスで、インスタンス化時にリスナーを設定し、Panel
クラスのインスタンスを作成します。 2番目はPanel
のコンストラクタにフラグを持つクラスなので、true
フラグでインスタンス化するとリスナが設定されますが、false
フラグを使用してインスタンス化すると、通常のPanel
として動作します。このようにして、同じクラスはファクトリとパネルとして同時に動作します。
どのアプローチをお勧めしますか?これを達成するより良い方法はありますか?