やや基本的な設計上の問題がありますが、OO 設計の経験があまりないため、適切な解決策を見つけるのに苦労しています。
ユーザーが企業/企業を識別する必要があるフレームがたくさんあるシステムがあります。これを行う 1 つの方法は、ユーザーが会社を選択できるようにする 2 番目のフレームを開くボタンをクリックすることです。選択が完了したら、元のフレームのテキストフィールドで会社のコードと名前を初期化する必要があります。
会社の識別が必要なすべてのフレームでアクションコードを複製するのは、良い設計上の選択ではないと思います。それでも、アクションをトリガーしたフレームへの参照なしでシングルActionListener
(または)を作成する方法がわかりません。javax.swing.Action
私の最初のアイデアは、検索サービスを必要とするすべてのフレームに共通のインターフェースを実装することでしたsetCorporation(Corporation corporation)
。このようにして、 を作成するときにActionListener
、インターフェイスを実装したフレームのインスタンスの参照を渡します。
問題は、このソリューションでは二重参照 ( addActionListener(new SearchAction(this))
) が作成され、すべての問題 (クライアントの検索など) に対してインターフェイスを実装する必要があることです。
この種の問題に対する最善のアプローチは何ですか?