2009-05-07 8 views
0

私はCLIとウェブ用のプログラミングをたくさん行ってきましたが、最近はデスクトップGUIプログラミングに取り掛かりました。初心者のGUI質問、別の "ビュー"を整理する

GUIプログラミングのチュートリアルのほとんどは、使用できるさまざまなコントロールについて説明しています。より良いもののいくつかはまた、いくつかのユーザビリティの問題を見ていません。

しかし、私の問題はAPIや理論ではなく、自分のコードにあります。

どのようにして、アプリケーションが持つさまざまなビュー(たとえば、IMアプリケーションにログインビュー、連絡先リストビュー、会話ビューなどがあります)を整理することになっていますか?

これらは、1つのクラスで異なるクラスまたは異なるメソッドであるはずですか? 隠れているパネルと公開されているパネル、

私は可能な限り言語にとらわれないものとして答えを期待していますが、それが不可能な場合は、私が検討している言語/フレームワークはJava/SwingまたはC#/ WPFです。しかし、学習のためにはるかに優れた別の言語/フレームワークがある場合は、それを使用することを検討します。

答えて

0

通常、各ビューは別々のファイルで別個のクラスになります。クラスは、ウィンドウまたはコントロールのような基本クラスを実装する可能性が最も高いでしょう。

これまでのところ、単純なアプリケーションの場合は、ルートまたはUIフォルダに配置します。または、おそらくWindowフォルダとControlsフォルダ。

複数のビューを持つ大規模なアプリの場合、それらを機能性(つまりIMフォルダ)に分割するよりも、

0

私はJoshuaが言ったことと、隠れて明らかにされた別のパネルを使っていると言います。私は古いコードで作業しましたが、再利用するのは悪夢です(Delphi 6の8000+ライン!できるだけ別のウィンドウを貼ってください!

0

一般に推奨されるプログラムの全体的な構造は、モデルビューコントローラ(MVC)タイプの構造です。したがって、まず、実際のデータをビューの一部にしないで、モデルに入ります。ここから、各ビューウィンドウ内の唯一のデータはほぼ完全にレイアウト情報であり、アクション(クリック、データ表示など)で何をすべきか、これらが異なる場合はおそらく異なるクラスになるはずです。因数分解できる一般的な機能がいくつかある場合は、これを基本クラスにして継承することができますが、最終的に機能が異なるウィンドウは異なるクラスにする必要があります。

0

主流IDEの1つを使用する予定の場合は、この作業の一部を処理します。デフォルトは、フォームごとに異なるクラスになります。非表示のパネルやタブ付きのインターフェイスはすばらしい機能ですが、自分自身を好んで、コントロールのグループをフォームに埋め込んだりすることを学びます。いくつかのフレームワークでは、フォームを別のフォームに直接埋め込むことができます。他のものには、埋め込むことができる特別な容器があります。

これらのポイントは機能を分割して、ウェーディングが困難な膨大なフォームクラスに巻き込まれないようにすることです。

私は、あなたのビジネスロジックをUIから切り離すためのアーキテクチャパターンをいくつか見ていきます。良い出発点はlinkです。