- - PR -
型(String等)の継承について
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-04-19 11:35
現在、それぞれの項目に対する処理を型として作成しようと思っております。
たとえばString型にValidationメソッドを作りその項目の時はその型を使うイメージです。 で、やりたいのはString型を継承した独自の型を作成し、 既存のStringのメソッドはそのまま使う又はオーバーライドして使うなどをしたいです。 ですが、型の継承はゆるされていないみたいでどう実現させれば良いか分かりません。 何か参考になる事があればお教え下さい。お願いします。 | ||||||||
|
投稿日時: 2007-04-19 12:04
_________________ | ||||||||
|
投稿日時: 2007-04-19 12:04
_________________ | ||||||||
|
投稿日時: 2007-04-19 12:08
ラッパーを作れば良いのでしょうけど、作る価値はあまりないと思います。
_________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2007-04-19 12:15
どうしてもやるとしたらですが、文字列を管理するクラスを自分で新たに作ってしまう手もあります。普通は String を集約(コンポジション)やラップ(wrap)するクラスを作ることになります。
クラス自体に、ある機能を追加するために、うかつに「継承」を使うことは好ましくありません。 古くから、「継承よりコンポジション」(を選べ、使え、...)という言葉があります。なお、場合によってはコンポジションすら要らない可能性もあります。 また、「Validationメソッド」をどう使うのかにもよります。もし String クラスを継承できたら、こういうコードになる、という例を提示されると良いかもしれません。 -- unibon {B73D0144-CD2A-11DA-8E06-0050DA15BC86} | ||||||||
|
投稿日時: 2007-04-19 12:22
オブジェクト「に」Validate「させる」のではなく、オブジェクト「を」Validate「して」ください。
機能(Function, メソッド、関数などなど)を用意する前には言語にかかわりなく、 「いつ」「誰が」「どこで」「何を」「どのように」「どんな手段で」「行う」べきなのか? をまず考えましょう。 #オブジェクト指向の話ではありません。一般的な実装時の設計の話です。 _________________ // とっちゃん(高萩 俊行)@わんくま同盟 // とっちゃん’Blog // MS-MVP for Developer Tools - Visual C++ // WindowsInstallerの話題はhttp://www.freeml.com/msiまで | ||||||||
|
投稿日時: 2007-04-19 13:10
あえて反対に OOP 的 (マルチプル インスタンス的) な話をすると、
にある "それぞれの項目" がデータ クラスなど集約された形で持っているとすれば、 "オブジェクト (インスタンス) に、Validate させる" で良いのですけど、
String のインスタンスを検証するとなると... というより、String のインスタンスに限った "検証" が思いつきません。 # 今や 「正規表現」 なんかもありますし... _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2007-04-19 14:59
「XXXXコード」のように業務の単項目ごとに派生型を作ろうとしてるという予想はできますが。 |