C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: 複数の似たフォームの作成について


(過去ログ 56 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■31564 / inTopicNo.1)  複数の似たフォームの作成について
  
□投稿者/ もこ (1回)-(2009/01/23(Fri) 21:33:38)

分類:[VB.NET/VB2005 以降] 

VB2008で開発しています。

私はパッケージソフトの開発を行っています。
そこで顧客の要望に合わせて、このパッケージソフトをカスタマイズしています。
その場合に、同じ画面であり、機能もほぼ同じであるが、
基本機能とは少し違う画面を作ることになります。
その場合に、今までは画面の呼び出しパターンに応じて、
ボタンの位置をずらしたり、不要なボタンを非表示にしたりするなどの
対応をしてきました。

プログラムの中でボタンの位置を変更したりすることは
なかなか地味に大変な作業であるため、非効率だなと思っております。

このような場合、皆様でしたら、どのようにフォームを作成されますでしょうか?
(1)複数のフォームを作成して、各処理をなるべくクラスで行いますか?
(2)それともフォームの継承を使って、うまく処理されるのでしょうか?

私は(1)がいいのかなと思っているのですが、
何かよい方法がございましたら、ご教示ください。

よろしくお願いいたします。
引用返信 編集キー/
■31566 / inTopicNo.2)  Re[1]: 複数の似たフォームの作成について
□投稿者/ 倉田 有大 (426回)-(2009/01/23(Fri) 22:06:31)
ケースバイケースだとおもいます。
よく使う処理はもちろんクラスにまとめます。
フォームの継承は、あまり使わないとおもいますが・・
引用返信 編集キー/
■31567 / inTopicNo.3)  Re[1]: 複数の似たフォームの作成について
□投稿者/ まどか (601回)-(2009/01/23(Fri) 22:17:55)
仕様によるとしか言いようが無いので、一般的な答えは無いと思います。

> プログラムの中でボタンの位置を変更したりすることは
> なかなか地味に大変な作業であるため、非効率だなと思っております。

地味で大変であっても、それが仕様なら必要な作業でしょう。
コードの構造化など保守性等を考慮して工夫するしかないです。

> (1)複数のフォームを作成して、各処理をなるべくクラスで行いますか?

その「各処理」が業務仕様ならクラスへ抽象化するのよくありますが、
コントロールなどUIに関するものは、継承コントロールやユーザーコントロールという方向性が多いです。
もしコントロール型を引数に持つメソッドを外出しにするような場合、
DBから決まった書式でコンボボックスへリスト構築する、などの「システム全体の共通仕様」であることが多いと思います。

> (2)それともフォームの継承を使って、うまく処理されるのでしょうか?

継承はis Aで表現されるように等価である必要があります。
したがって、個々の仕様に対して継承関係であるということが前提になり、かつそれが満たされれば、じゃぁ継承を用いるかという流れになります。
なので一般的な答えはありません。
引用返信 編集キー/
■31572 / inTopicNo.4)  Re[2]: 複数の似たフォームの作成について
□投稿者/ やじゅ (914回)-(2009/01/24(Sat) 09:03:23)
やじゅ さんの Web サイト
2009/01/24(Sat) 09:04:58 編集(投稿者)

>プログラムの中でボタンの位置を変更したりすることは
>なかなか地味に大変な作業であるため、非効率だなと思っております。
>
>このような場合、皆様でしたら、どのようにフォームを作成されますでしょうか?
>(1)複数のフォームを作成して、各処理をなるべくクラスで行いますか?
>(2)それともフォームの継承を使って、うまく処理されるのでしょうか?

フォームの継承を使うのは、複数のフォームに共通要素がある場合で
その共通要素を「基本フォーム」にまとめて、残りの個別の要素を
各フォームに実装するのが一般的かな。

その機能を継承することで、保守性や効率がいいと考えるならする。
(画面が単純に似ているからといって、その度に継承元フォームを幾つも作成したりはしない)


フォームにビジネスロジックを含まないように作成するべきなので、
ビジネスロジック部はそもそも別クラスで分けておくといい。
引用返信 編集キー/
■31575 / inTopicNo.5)  Re[1]: 複数の似たフォームの作成について
□投稿者/ .SHO (560回)-(2009/01/24(Sat) 13:36:18)
> プログラムの中でボタンの位置を変更したりすることは
> なかなか地味に大変な作業であるため、非効率だなと思っております。

いちいちクラスを作ったりフォームの継承したりするように変更する事を
考えると、それほど大変な作業にも思えないのですが・・・

いつも変更する箇所を1つのソースの1箇所に集めるように
リファクタリングするぐらいかな。

もう、されてるかも知れないですけど。。。

引用返信 編集キー/
■31631 / inTopicNo.6)  Re[2]: 複数の似たフォームの作成について
□投稿者/ もこ (2回)-(2009/01/26(Mon) 14:42:38)
皆様ご回答ありがとうございます。

フォームの継承は行わないことにしました。

ビジネスロジックだけをクラスに抜き出しまして
中身の処理は、うまく分岐させて作ることにしました。

コントロール型の引数を渡して、
外部で処理させるようなこともしないようにします。

なるべく制御部分を簡潔にできるように
工夫してプログラミングするように致します。

大変参考になりました。
ありがとうございました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -