2011-12-21 9 views
0

私は自分自身をWindowsフォームとグラフィックユーザーインターフェイスに慣れさせるためのプロジェクトを作っています。Windowsフォームでの多態性

私はCONSOLEで多型を使用する自動車部門のためにこのプログラムを作成しました。だから私はタクシーを入力すると、それは個人的な車両ではなく、産業車両の基本クラスを呼び出します。

プログラムはコンソールで正常に動作します。

しかし、それがグラフィカルインターフェイスを通じて実装可能かどうかは疑問です。私はちょうど車の種類のボタンを持つことができ、その後、その特定のタイプの車両のためにそのデータを入力するために新しいフォームを開いていることがわかります。しかし、それは多形性ではありません....

これはポリモーフィズムで行えるプロジェクトのタイプですか?とGUIのかどうか?

+1

それを行うことができなかった理由は。あなたがしようとしていることについていくつかのコードや詳細を提供する必要があるかもしれません。 – CoderDennis

+0

抽象クラスの使用について質問していますか? http://msdn.microsoft.com/en-us/library/sf985hc5(v=vs.71).aspx 多態性を使用して作成したコードをCONSOLEに貼り付けることはできますか? –

+0

通常、各モデルのビューを持つことは良い方法です。モデルの関連部分(製造元情報ビューなど)のサブビューが異なると、継承*ではなくビューの合成***が可能になります。 –

答えて

1

上記のように基本クラスを処理する1つのフォームしか作成されていないと、あなたは金儲けが増えると思います。しかし、派生クラスの必要に応じて、オン/オフを切り替えたり、表示アイテムを作成したりします。 GUIは多形である必要はなく、単にデータの多形性を処理する必要があります。 HTH

1

達成したいことについて具体的に説明しなければなりません。大部分の問題に多態性を適用することができます。それが良いテクニックであるかどうかは、使用方法によって大きく異なります。 ここではを起動しないでください。代わりに、アプリケーションの内容を指定してください。になります。どのようにすればよいのでしょうか?また、オブジェクトを設計する方法についても説明します。その周りのモデル。タクシーを実際にどのように表現するかという考えは、実際には役に立たないことが分かります。

1

使用するユーザーインターフェイスに関係なく、オブジェクト指向アプリケーションで多相性の恩恵を受けることはできません。あなたのシナリオでは、リストビューで基本クラスへの参照のみを使用し、オブジェクトの特定のタイプに適した適切な詳細ビューを開くことができます。

また、私はそれが価値があるためにWPFをお勧めします。あなたが非常に正当な理由がない限り、Windowsフォームの学習は今使っていません。

+0

WPFではテンプレートとデータ型を一致させて素敵なことを行うことができます。共通要素を再利用することもできます。これはいくつかの問題をカバーするようです。 – Murph

+0

Windowsフォームはどうしていいのですか? – user1050632

+0

@ Murphが述べたように、WPFは実際にこの状況でDataTemplatesを手助けすることができます。主に、WindowsフォームはWindowsアプリケーションを作成する古い方法ですが、WPFは新しい方法です。今は古い方法を学ぶことはありません。もちろん、WPFが優れています。 Windowsフォームを使用するために何が決定しましたか? –

0

あなたが探しているのは、渡している(ポリモフィック)オブジェクトの種類に応じて動的にGUIを構築する方法でしょうか?これは、リフレクションを使用し、Formに渡されたオブジェクトにどの属性またはプロパティがあるかを尋ね、各属性に対して自動的に入力フィールド、テキストボックスなどを生成することによって実行できます。

いくつかの例については、これはSO記事読み:

Dynamic options dialog (using reflection)