達成したいことに応じて、いくつものオプションを利用できます...
あなたは出来る...
TreeModel
更新の実行を担当するクラスに を渡します。
これは、他のクラスに提供したくない可能性のある へのアクセスを提供するため、少し厄介TreeModel
です。これらのクラスは、ルートを変更しない、ノードを削除する、追加するなど、モデルに対して望ましくないことを突然実行できます。追加したくない場所へのノード...
また、ツリー構造についての一般的な知識も前提としています。たとえば、特定のサブツリー内でのみ更新を実行したい場合は、更新クラスがこれを暗黙的に認識する必要があります。
TreeModel
また、特に更新コードを再利用したい場合は、将来必要のない特定の状況にロックされる可能性があります...
あなたは出来る...
更新クラス内でオブザーバー パターンまたはプロデューサー/コンシューマー パターンを使用します。
基本的にこれは、更新クラスが単に「何かを実行」し、イベントをトリガーして、変更が発生したことを興味のある人に通知することを意味します。この概念は Swing 内でよく見られます。
これの利点は、コードの更新部分をモデルと UI から切り離して、コードをより柔軟にし、コードの他の部分に関する仮定を減らすことです。
これらの更新や変更にどのように対応するかを決定するのはオブザーバー/リスナー次第であり、コードを無限に柔軟にします。
これは、更新コードを変更できることを意味します (そして、オブザーバー インターフェイスが変更されない限り) 結果の結果に関心のある人には影響しません...