2011-06-23 17 views
1

スタンドアロンSWT/JFaceで私の最初のデスクトップJavaアプリケーションを作成しています(私はRCPを使いたくありません)。しかし、それは言語の問題ではないので、私が使用する技術に集中しないでください。UIアプリケーションアーキテクチャのアイデア

ほとんどの単語で説明すると、メインウィンドウにはタブフォルダがあり、各タブアイテムはユーザーが編集できるファイルを表しています。ファイルは構造化ビューアで表されます。アプリケーションにはメニューとツールバーがあります。タブ項目にはコンテキストメニューがあります。

私の質問はアプリケーションのアーキテクチャです。 コードが正しく構成されるように、良い設計アーキテクチャを作成する方法がわかりません。

各アクション(メニューで、コンテキストメニューでは、ツールバーにある)私が何をするか分からないので、選択したタブ項目の内容を変更することができます:

の1-タブ項目は、公共の多くを公開メソッドは、すべてのアクションによって呼び出されますか?したがって、タブ項目には多くの機能があります: 例:メニューまたはコンテキストメニューの新規行の追加アクションは、タブ項目のaddNewLine()メソッドを呼び出しますか?

2 - コントローラとして動作するクラスで、タブフォルダとすべてのタブアイテムを管理し、多くのパブリックメソッドを公開します。 例:開いているFileメニューアクションは、コントローラのopenFile()メソッドを呼び出します。新しい行の追加アクションは、アクティブなタブを知っているコントローラを呼び出し、必要な行を追加します。

3それぞれのアクションは具体的なクラスであり、UIをリフレッシュするために、タブ項目でできるだけ小さなメソッドを呼び出すだけです。 例:開いているファイルのメニューアクションは、ファイルのデータを読み込み、UIコンポーネント上で直接addNewTab(ApplicationObject my object)のようなものを呼び出すために、 "ファイルを開くダイアログ"を開くロジックを持っています

4 ...?

あなたの視点では、どちらがベストプラクティスですか? このようなデスクトップアプリケーションの設計例/ドキュメントをどこから見つけることができますか?事前に

おかげで、

Fluminis

答えて

0

は、私はあなたがイベントベースのアプリケーションを設計する方法を読むことをお勧め(ジャワ、アンドロイド、FlashやVB.Netすることができる)と、具体的なリソースは、本Growing Object-Oriented Softwareです。その本では、Swingアプリケーションの構築とテストの方法について説明し、使用するデザインは完璧です(もちろん私の立場から)。

関連する問題