スタンドアロンSWT/JFaceで私の最初のデスクトップJavaアプリケーションを作成しています(私はRCPを使いたくありません)。しかし、それは言語の問題ではないので、私が使用する技術に集中しないでください。UIアプリケーションアーキテクチャのアイデア
ほとんどの単語で説明すると、メインウィンドウにはタブフォルダがあり、各タブアイテムはユーザーが編集できるファイルを表しています。ファイルは構造化ビューアで表されます。アプリケーションにはメニューとツールバーがあります。タブ項目にはコンテキストメニューがあります。
私の質問はアプリケーションのアーキテクチャです。 コードが正しく構成されるように、良い設計アーキテクチャを作成する方法がわかりません。
各アクション(メニューで、コンテキストメニューでは、ツールバーにある)私が何をするか分からないので、選択したタブ項目の内容を変更することができます:
の1-タブ項目は、公共の多くを公開メソッドは、すべてのアクションによって呼び出されますか?したがって、タブ項目には多くの機能があります: 例:メニューまたはコンテキストメニューの新規行の追加アクションは、タブ項目のaddNewLine()メソッドを呼び出しますか?
2 - コントローラとして動作するクラスで、タブフォルダとすべてのタブアイテムを管理し、多くのパブリックメソッドを公開します。 例:開いているFileメニューアクションは、コントローラのopenFile()メソッドを呼び出します。新しい行の追加アクションは、アクティブなタブを知っているコントローラを呼び出し、必要な行を追加します。
3それぞれのアクションは具体的なクラスであり、UIをリフレッシュするために、タブ項目でできるだけ小さなメソッドを呼び出すだけです。 例:開いているファイルのメニューアクションは、ファイルのデータを読み込み、UIコンポーネント上で直接addNewTab(ApplicationObject my object)のようなものを呼び出すために、 "ファイルを開くダイアログ"を開くロジックを持っています
4 ...?
あなたの視点では、どちらがベストプラクティスですか? このようなデスクトップアプリケーションの設計例/ドキュメントをどこから見つけることができますか?事前に
おかげで、
Fluminis