@IT情報マネジメント会議室は、2009年4月15日に新システムに移行しました。
新たに書き込みを行う場合には、新しい会議室をご利用ください。
- PR -

プロパティについて

投稿者投稿内容
mso
ぬし
会議室デビュー日: 2003/12/04
投稿数: 496
お住まい・勤務地: 宮城
投稿日時: 2005-08-09 23:51
msoです。

みなさま、いろいろと意見ありがとうございました。
なんとなくイメージではありますが、わかってきた気がします。
なんかの本で読んでいて、知っていたはずなのですが
改めて理解した感じです。

ただ、ちょっと気になるのですが、
やっぱりメソッドの引数が増えるとプロパティにしてしまう方が便利なんでしょうか?
# C#であれば、DataSetに値をつっこんで、それだけを
# プロパティに渡してしまえば良いと思うのですが、
# 邪道ですか?あと、Javaの場合はDataSetみたいな代用ってありますか?

個人的な話ですが、普段からVisualStudioで仕事をすることが多いので、
メソッドにしてもそれほど順番を間違えることないのです。
引き渡す数が多いと、プロパティを定義するのが面倒になりませんか??
架空兎
ベテラン
会議室デビュー日: 2003/08/18
投稿数: 78
お住まい・勤務地: さいたま氏
投稿日時: 2005-08-10 01:49
クラスに紐付いている情報であればそのクラスにプロパティを作りますが、
そうでなく、且つ渡す情報が多い場合、私の場合はメソッドに渡す情報のクラスを作って、
そのオブジェクトに必要な情報をセットし、メソッドに渡すやり方をしています。

コード:

foo objFoo = new foo();
objFoo.aaa = "test";
objFoo.bbb = "test2";
hoge objHoge = new hoge();
objHoge.Exec(objFoo);



引用:

msoさんの書き込み (2005-08-09 23:51) より:

やっぱりメソッドの引数が増えるとプロパティにしてしまう方が便利なんでしょうか?


プロパティにしておくとメソッドに渡す情報が
増えたり減ったりしたときに変更がやりやすかったりします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-08-10 09:20
こんにちは、じゃんぬ です。

引用:

# C#であれば、DataSetに値をつっこんで、それだけを
# プロパティに渡してしまえば良いと思うのですが、


最低でも強い型情報は欲しいところですけどね。(^^)

引用:

個人的な話ですが、普段からVisualStudioで仕事をすることが多いので、
メソッドにしてもそれほど順番を間違えることないのです。
引き渡す数が多いと、プロパティを定義するのが面倒になりませんか??


データクラスの場合、プロパティの方が何かと直感で理解しやすいですね。
プロパティがイヤであれば、フィールド定義でも問題ないと思います。
何かの振る舞いのために、渡す時点でデータクラスだと思いますし。



_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
餅宮餅吉
ベテラン
会議室デビュー日: 2005/03/04
投稿数: 57
お住まい・勤務地: 月餅のうまい店の隣
投稿日時: 2005-08-10 11:01
こんにちわ、餅宮です。

引用:

msoさんの書き込み (2005-08-09 23:51) より:

やっぱりメソッドの引数が増えるとプロパティにしてしまう方が便利なんでしょうか?
# C#であれば、DataSetに値をつっこんで、それだけを
# プロパティに渡してしまえば良いと思うのですが、


 メソッドに渡す引数が多くなる時点で、クラス設計がおかしいような気がいたしますが、架空兎さん、じゃんぬねっとさんもお書きになられていますが、データの固まりを渡すなら、値クラス(情報のクラス、データクラス)を引数にするのが良いかと思います。
 対象とするクラスの属性的な情報であれば、プロパティにするのはいいと思うのですが、対象となるメソッドでのみ使用する用途でプロパティを定義するのはおかしいと思います。

引用:

引き渡す数が多いと、プロパティを定義するのが面倒になりませんか??


 面倒ですか???、クラスの役割を考えて、メソッドなりプロパティを定義してるだけなので、余り面倒だとは思いませんが、物理的に面倒だという意味なクラスビューからメソッドなり、プロパティを定義すると少しは楽になるのではないでしょうか?
Anthyhime
ぬし
会議室デビュー日: 2002/09/10
投稿数: 437
投稿日時: 2005-08-21 21:41
引用:

# C#であれば、DataSetに値をつっこんで、それだけを
# プロパティに渡してしまえば良いと思うのですが、
# 邪道ですか?あと、Javaの場合はDataSetみたいな代用ってありますか?


私はDataSetを使ってやるやりかたは特に問題は感じません。
そもそも.Netの全体的なクラス設計の思想が、Javaなようなクラス志向ではなくDataSetを中心としたデータバインディングとなっています。
Javaも同様な設計思想があり、RowSetを利用したコーティングレスなEODに向かいつつあります。
結局なところ変数のアクセスに対してプロパティを利用すべきかそうでないかは、顧客の要件によると思います。
顧客の要件を達成するのに純粋なオブジェクト指向が必要であれば、変数のアクセスはプロパティを経由すべきですし、処理は完全に正規化されクラス内にカプセル化され、処理は委譲されるべきです。
しかしながら顧客が単純な設計と、生産性と品質を好むのであれば、無駄なコードは1行でも削減すべきですので、クラス設計に時間を費やすよりは、DataSetやRowSetをベースに、できるだけコーディングレスで要件を達成すべきだと思います。
餅宮餅吉
ベテラン
会議室デビュー日: 2005/03/04
投稿数: 57
お住まい・勤務地: 月餅のうまい店の隣
投稿日時: 2005-08-22 11:22
こんにちわ、餅宮です。

理解できない部分があるので、ご教授ください。

引用:

Anthyhimeさんの書き込み (2005-08-21 21:41) より:

しかしながら顧客が単純な設計と、生産性と品質を好むのであれば、無駄なコードは1行でも削減すべきですので、クラス設計に時間を費やすよりは、DataSetやRowSetをベースに、できるだけコーディングレスで要件を達成すべきだと思います。



 「生産性と品質」が純粋なオブジェクト指向で作成されたものより、DataSetやRowSetでコーティングするほうが向上するのはどうしてですか?
 又、スレ主さんがDataSetを使う理由としてあげているのは、メソッドの引数が多くなる場合であると認識していますが、そのレベルでも「顧客の用件」が入ってくるのでしょうか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-08-22 12:02
引用:

結局なところ変数のアクセスに対してプロパティを利用すべきかそうでないかは、顧客の要件によると思います。
顧客の要件を達成するのに純粋なオブジェクト指向が必要であれば、変数のアクセスはプロパティを経由すべきですし、処理は完全に正規化されクラス内にカプセル化され、処理は委譲されるべきです。


顧客の要件が必要でなくとも、プロパティで明示化するのは良いことだと思います。
また、何かあった時にプロパティ内で「副作用」を差し込めたりできますし...
公開フィールドで使うのは、データクラスか読み取り専用フィールドくらいですかね。
あ、こういう問題って正しい答えなんかはないと思います。(^^)



_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
Anthyhime
ぬし
会議室デビュー日: 2002/09/10
投稿数: 437
投稿日時: 2005-08-22 12:26
引用:

「生産性と品質」が純粋なオブジェクト指向で作成されたものより、DataSetやRowSetでコーティングするほうが向上するのはどうしてですか?


基本的にプログラミングレスなのですから、バグの件数が減り、生産性が向上するのは当然です。当然顧客の要求が複雑なビジネス処理やビジネスルールを適用するのであれば、オブジェクト指向を利用するのがいいと思います。あまりないとは思いますが。
引用:

 又、スレ主さんがDataSetを使う理由としてあげているのは、メソッドの引数が多くなる場合であると認識していますが、そのレベルでも「顧客の用件」が入ってくるのでしょうか?


無駄な「オブジェクト指向のため」のコードは基本的に顧客は要求しません。

スキルアップ/キャリアアップ(JOB@IT)