- PR -

VBにおいて動的にクラスを設定する方法

投稿者投稿内容
ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2007-05-15 23:32
引用:

Jittaさんの書き込み (2007-05-14 22:03) より:
引用:

ぼのぼのさんの書き込み (2007-05-09 23:28) より:
ファクトリパターンに従うのなら、clsSuperClassの静的メソッドにするのではなく、
別途ファクトリクラスを作った方が良いのではないでしょうか?


 すみません、デザイン パターンは便利だと思う一方で、何で?と思うこともあります。
ここで、別途ファクトリ クラスを作ることの利便性を教えてください。


ファクトリパターンに従うのなら、と書いてますよね。
従わないなら、それはそれでいいんですw

と、ここで終わらすとなんも意義が無いので、もすこし書きます。


私は、そこまでオブジェクト指向に精通しているわけではないのですが、
オブジェクト指向による設計の肝の一つは、「適切な役割分担」だと思っています。
#餅は餅屋にまかせろ、と。

例えば、Jittaさんかリンクを張られてるサルでもわかる 逆引きデザインパターンには、
楽器工場の例が書かれていますが、この例にJittaさんの設計を適用すると、
楽器クラスがトランペットやサックスを作成する機能を保持することになりますよね。

私は「楽器は音を出すのが仕事で、楽器をつくるのは工場の仕事だろ」と考えたのでした。

しかし、このスレッドのお題では話は別だろ、とおっしゃるなら、そうかもしれません。

引用:

GoFデザインパターンに示された通りでなければいけない、という決まりはないのですから。


これは同意です。

デザインパターンてのは基本的に汎用的なものですから、条件がしっかり決まってくれば、
必ずしも最適とは限らない、適宜応用してねってことですよね。


蛇足ですが、一般的に広く認知されたパターンをそのまま使うメリットとして、
「これ、なんでこんな設計になってるの?」と聞かれたとき、
「ファクトリパターンてのを使ってるんだ。詳しくはこのURL見て」の一言で済んでしまう
というのがあります。
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2007-05-15 23:42
引用:

ぼのぼのさんの書き込み (2007-05-15 23:32) より:
オブジェクト指向による設計の肝の一つは、「適切な役割分担」だと思っています。
#餅は餅屋にまかせろ、と。

--

私は「楽器は音を出すのが仕事で、楽器をつくるのは工場の仕事だろ」と考えたのでした。


工場は誰が作るのでしょう??
ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2007-05-16 00:07
引用:

なちゃさんの書き込み (2007-05-15 23:42) より:
工場は誰が作るのでしょう??


えーと、建築業者さん?(違

真面目に答えると、ファクトリパターンが必要になるのは、
動的にあるクラスのインスタンスを作成する必要がある場合ですから、
作成する側である工場は、作るというより「はじめからそこにある」イメージですかね?
#InstrumentFactoryFactoryクラスとかあったら嫌だな…
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2007-05-16 07:44
引用:

なちゃさんの書き込み (2007-05-15 23:42) より:

工場は誰が作るのでしょう??


オブジェクトにはモデルを創造したその世界の神がいるので、その人ですかね。
_________________
かるあ のメモスニペット
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-05-16 20:59
引用:

なちゃさんの書き込み (2007-05-15 23:42) より:
工場は誰が作るのでしょう??


static にして、「すでにあるものとして考える」


引用:

ぼのぼのさん:
ファクトリパターンに従うのなら、と書いてますよね。
従わないなら、それはそれでいいんですw


むむ!
ごめんなさい。「ファクトリーパターンに従って、こうする」と読んでいました。
なので、「どうして従わなければいけないの?」と思ったのでした。
_________________

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