うめのビジネスからプレゼンテーションロジック?
-
23-08-2019 - |
質問
作りたいゲームで動作する地域です。
私が最初に思ったインタフェースを作成するすべてのメソッドが必要とするのGUIのビジネスロジックのなかで、ネットワークを実施、現地の実装です。
この動作のための要求-応答メッセージその一方で、メッセージをサーバに送信して更新GUIコンポーネントJLabels)?
私が最初に解決したことをリスナーを、それぞれの実装は火災ます。GUIの登録-変更で部品を適切に表すしかし、火災でのイベントのビジネスロジックを見て少し間違っています。
私のいでしょうか。いいんだと思います。ご意見募集
お願い致します。
注意:クライアントは簡単にJava Swingす。
解決
そのままに記載の目的のモデルは独立の問題であるかもしれない。この期間中の設計、開発、メンテナンスであるため、モデルに書き込みユニット試験的に一定の変化のモデルは火の特定のイベントを気にせずに何かのように見える画面になります。
もちろんので、解放すまでの異なるGUIデザインの異なる環境です。
そのイベントの変更についての状態をモデル ない 約的行動/表現を発表する。ようにプレゼンテーション層の対応かどうか/どのように対応するモデルイベントです。
他のヒント
私は、ウェブ開発を行うことを認めるよ、私はスイングで多くの経験を持っていない。
しかし、私はいつも、私はそれに近づくだろう方法は、パッケージ/ビュー/モデル、および/コントローラにアプリを破るだろうと思っています。関係は一方向のようになります:/コントローラは、両方/モデル/ビューについて知っているだろうが、どちらも/コントローラまたは互いに任意のクラスをインポートするでしょう。
。/ビュー層成分はJFramesになることはありません。彼らは常にJPanelのか、必要に応じてJFramesに一緒に構成することができ、他の適切な容器になるだろう。それぞれがコンストラクタで初期化リスナー・インターフェースへの参照を持っているでしょうし、イベント処理のために、これらに延期なります:
public class ExamplePanel extends JPanel implements ActionListener
{
private JButton button;
private ActionListener buttonListener;
public ExamplePanel(ActionListener buttonListener)
{
this.button = new JButton("Do Something");
this.buttonListener = buttonListener;
this.button.addListener(this.buttonListener);
}
public void actionPerformed(ActionEvent e)
{
this.buttonListener.actionPerformed(e);
}
}
今コントローラは全くのクライアントには影響を与えない方法で行動を変え、そのリスナーインタフェースのローカルまたはリモートの実装を使用するように選択することができますので、この配置は、依存性注入とうまく動作します。
私はすべての方法を通じてそれを踏襲したことがないことを認めるよ。
春の人々が豊かなSwingクライアントモジュールを持っているが、好意から落ちたように見えます。彼らはBlazeDSの方向は、リッチクライアントのためのより良い選択であると判断したようです。しかし、おそらくあなたは彼らのアプローチから、いくつかのデザインのアイデアを収集することができます。