- - PR -
クラスにちょっとだけ追加属性を持たせたい場合、オブジェクト指向的にはどうするのが良い?
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-12-11 18:37
(利用規約違反のため削除いたしました。@ITクラブメンバーシップセンター)
| ||||||||||||
|
投稿日時: 2008-12-11 19:25
えっと、まず「○○ クラスにちょっとだけ追加属性を持たせたい」「けれど、○○クラスが持つのは適切ではない」ということは、その 2 つを持つべき適切なクラスが存在する (隠れている) 可能性が高いはずです。 だから、それを見つけ出すわけです。 決して、「どっかに Foo と Abc を持たせときたいからクラス一個定義するか」ではありません。 (そうすると、"FooAbc" ではダメだということがわかると思います。) で、使い分けですが、Dictionary で事足りるのならば、別に Dictionary でも良いと思います。 僕が前回挙げた例ならば、貸出日付や返却予定日なんかも属性として持たせたくなった時、Dictionary では不都合でしょう。 貸出クラスならば貸出日付や返却予定日なんて属性も追加できます。 また、何らかの操作 (メソッド) が必要になったら、やはり Dictionary ではマズいわけです。 Dictionary では不都合になった時に初めて貸出クラスを定義するのか、 それとも最初からそれを見越して貸出クラスを用意するのかは、また別問題ですので言及しません。 _________________ C#と諸々 |