0

私はこの問題に頻繁に遭遇しました。これに立ち向かう方法を考えることができませんでした。今、私はこの素晴らしいフォーラムを手に入れました!ここの専門家がこれを手伝ってくれると確信しています。

これは、特定のコードセグメントのような問題ではありません。私は(私が思うに)Javaでいくつかの高度なプロジェクトを行うことができます。つまり、プロジェクトを終了して正確な結果を得ることができるということです。

でも問題は、なんとか終わらせることはできても、授業の運営などに満足していないことです。実は、きちんと管理する方法がわかりません。私が現在取り組んでいるプロジェクトを考慮して説明します(私はプロのコーダーではありません。これは私の自己学習のためです)。

私はデータベース管理システム(MySQL + Java)に取り組んでいます。そこで、いくつかの機能を実装したいと思っています。流れはおおまかにこうなります。

1. Login
2. Main window

メインウィンドウはこんな感じになります。

ここに画像の説明を入力してください

左側のパネルで、実行する必要があることを選択できます。

Eg.

*. Add some entries to the database

*. Search database

*. Other..(will be add later)

2つのフレームといくつかのパネルのすべてを管理する方法を教えてください。

私がやったことはこんな感じです。

managerClassmainメソッドを持つaを書きました。次に、loginFrame最初に呼び出します。検証後loginFrame、のメソッドを呼び出してmanagerClass、をロードしますmainFrame。ただし、ユーザー名などmanagerClassの必要な情報をすべて保存するため、すべてのフレーム、パネルなどで参照を保持します。managerClass

しかし、変更やデバッグを行うと、事態は非常に困難になります。私は特定の規則に従って物事をしていませんので。少し変更するには、ほとんどすべてのクラスを変更する必要があります。私はたくさん海をしました

4

1 に答える 1

1

私があなたのアプリケーションについて理解できることから、あなたの主な問題は、あなたのコンポーネントとアプリケーションの異なる層(プレゼンテーション、相互作用制御、ドメインロジック)の間の結合です。ここで役立つ2つのデザインパターン(またはスタイル)を使用することをお勧めします。

  1. Model-View-Presenter:モデル/ドメインロジックをプレゼンテーション(ビュー)から、ユーザーインタラクションを制御するロジックから分離します。最近、大規模なアプリケーションで使用しましたが、関心の分離をクリーンな方法で行うのに非常に役立ち、テストがはるかに簡単になることがわかりました。近いモデル-View-Controllerモデルと混同しないでください。ただし、多くの問題があります。これらの2つのパターンを説明する MartinFowlerによる素晴らしい記事があります
  2. コンポーネント間のイベントベースの相互作用を採用します。LoginフレームがManagerクラスを呼び出す代わりに、対象のコンポーネントによって処理されるイベント(「ユーザー認証済み」)を起動するようにします。たとえば、メインウィンドウに小さなユーザーアカウントの詳細パネルがあり、このイベントがトリガーされるまで表示されない場合があります。残念ながら、私はプレーンJavaのイベントフレームワークを認識していません(開発に使用しているものかどうかは疑わしいです)。私が使用しているのはGoogleWebToolkit用です。
于 2012-08-03T06:01:46.330 に答える