|
分類:[.NET 全般]
お世話になっています。 現在コーディング時のルール決めを行なっておりその際 のデータの渡し方についての質問です。 Windowsアプリケーションで環境はWindowsXP/VB2005です。
例えば電話番号帳アプリを作成する為に以下例の用に FormHogeに登録データ用のTextBoxを4つとDBへの追加の為 の追加ボタンを配置します。
【FormHoge】 ●登録データ用 ・ユーザID ・名前 ・住所 ・電話番号 ●ボタン ・登録
テーブルへの追加は、別のクラスDataAcessHogeHoge で行ないますが、この場合にFormHoge→DataAcessHogeHoge へデータを渡す場合にどのようにするのがよいのでしょうか? 私が考えているのは以下のパターンです。
1.FormHogeの各コントロールをPublicにしてDataAcessHogeHogeからFormHoge.・・・にて取得する。
2.DataAcessHogeHogeにデータ取得用のプロパティを準備して渡す
3.登録処理の引数として各値を渡す
この例の用に数が少ないということであれば2or3で行なっても手間がかからず いいですが、実際の業務では20項目以上あったりすることがありプロパティを 準備するのが面倒だから1でいいじゃんという人もいます。ただ、カプセル化の 概念からいけば1の方法は個人的にはあまり好きではないです。
"リファクタリング プログラミングの体質改善テクニック" の中に引数オブジェクトの導入というテクニックが掲載されており これを導入しようかと検討していますが、今回の例ではただのデータクラスに なってしまいます。 上記本の中にはデータクラスは、コードの不吉な匂いということで 挙げてありますので矛盾するような気がしています。
この例は業務アプリケーション開発ではよくあるパターンだと思います。 是非ご意見をいただけたらと思います。
|