トップページ⇒tech
1001コメント374KB

〔隔離〕デザインパターンは本当に必要か?〔スレ〕

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2005/06/21(火) 19:09:56
そもそもデザインパターン自体どうなのよ?って話はここでやれ。
0449デフォルトの名無しさん2005/06/26(日) 13:40:27
>>446
なんで?
多態性や継承なんてバグの温床だと思うけど?
0450デフォルトの名無しさん2005/06/26(日) 13:41:48
>>449
> 多態性や継承なんてバグの温床だと思うけど
なんでそう思ったんだい?
0451デフォルトの名無しさん2005/06/26(日) 13:41:58
>>448
本質じゃないよ。
本質は対象物の構造をそのままソースに映すことだよ。
多態性なんて付属品じゃないか。
0452デフォルトの名無しさん2005/06/26(日) 13:43:29
>>450
自分の主張を入れて無いレスにレスは返さないよ。
自分はどう思うけど〜って形にしてくれない?
0453デフォルトの名無しさん2005/06/26(日) 13:45:16
対象物の構造をそのままなんていってるが
純粋架空物のクラスは作らないのかよ
0454デフォルトの名無しさん2005/06/26(日) 13:46:10
オブジェクト指向に多態性が必要ないっていう意見は初めて聞いたな
0455デフォルトの名無しさん2005/06/26(日) 13:48:40
>>454
なぜそっちを相手にしてるのか?
が疑問だ。
0456デフォルトの名無しさん2005/06/26(日) 13:48:44
>>454
心に刻んでおきたまへw
0457デフォルトの名無しさん2005/06/26(日) 13:52:16
>>450
多分、>>449はC++プログラマーで基底クラスのデストラクタをvirtualにし忘れたとか、
そういう低レベルのことをいっているんジャマイカ?
0458デフォルトの名無しさん2005/06/26(日) 13:55:43
多態を否定すると、Javaのライブラリが何も使えなくなってしまうなw
0459デフォルトの名無しさん2005/06/26(日) 13:57:15
おい、34℃超えたってよ。
0460デフォルトの名無しさん2005/06/26(日) 14:01:03
>>458
アンチの彼はC++しか使ったこと無いみたいだから、いいんじゃネーノ
0461デフォルトの名無しさん2005/06/26(日) 14:01:17
>>458 boostもC++の標準ライブラリも使えないっす。つらすぎる。
0462デフォルトの名無しさん2005/06/26(日) 14:01:23
>>457
そのレベルなの?

基底クラスをバーチャルにするしないは、場合よるか、
統一事項の世界かと?
0463デフォルトの名無しさん2005/06/26(日) 14:02:49
>>441
設計、分析、実装の違いがわからん厨は糞して寝ろw
0464デフォルトの名無しさん2005/06/26(日) 14:07:05
>>461
MFCも使えないな。
# まぁ、別の意味でMFCは使えないライブラリだし、いいのか?
0465デフォルトの名無しさん2005/06/26(日) 14:08:28
C++ライブラリはまず全滅。
Cの時代に逆戻り。
0466デフォルトの名無しさん2005/06/26(日) 15:24:27
なんだ、この程度のを相手にしていたのか。
キミにはなっかりだよ。
0467デフォルトの名無しさんNGNG
(´ー`)早くID導入されてほしいな
0468デフォルトの名無しさん2005/06/26(日) 15:32:50
継承とポリモーフィズム使わないんならそれはオブジェクト指向じゃなくて
モジュール指向だとか抽象データ型の世界だろ
別に後者が悪いという訳じゃないが、オブジェクト指向を後者から決定的に
峻別するものが継承とポリモーフィズム。
0469デフォルトの名無しさん2005/06/26(日) 16:30:54
>>468
なんどもいうけど
オブジェクト指向ってのは
対象物の構造をソースに反映させることだよ。
継承やら多態性なんてのは本質からはずれまくってて話しにならないよ。
だいたい継承やら多態性なんてのは設計がきっちりできたあとの話だろ?
結局、設計が腐ってたら継承だって多態性だって全く意味が無いよ。
0470デフォルトの名無しさん2005/06/26(日) 16:40:31
>>469 ポリモーフィズムの意味を理解した上での発言だよね?
0471デフォルトの名無しさん2005/06/26(日) 16:41:52
>>470
そのつもり。
まず、正しい分析、正しい設計ありき。
継承や多態性なんて出てくるのはあとのあと。
0472デフォルトの名無しさん2005/06/26(日) 16:47:56
>>471 設計終わってから新しくクラス派生させるの?
設計終わってから派生させちゃいけないっていってるわけじゃないよ。

でも実装時にクラス派生させることを前提にした設計って...
0473デフォルトの名無しさん2005/06/26(日) 16:52:03
>>449
使いこなせない事の言い訳に「バグの温床」というのは
よく聞かれる詭弁ですね。
0474デフォルトの名無しさん2005/06/26(日) 16:52:10
継承なんて面倒なんで、pimpl使えばいい、
どうせ関数呼出しに関しては継承とたいして変わらん、
動的な切替えもできるし。
0475デフォルトの名無しさん2005/06/26(日) 16:59:10
>>474
pimplイディオムは良くってデザインパターンはダメってのが良く分からん。
pimplではなく委譲といえばまだ分かるんだが・・・
0476デフォルトの名無しさん2005/06/26(日) 17:03:36
>>472
そんなウォーターフォールな脳みそでこの先どうするつもりだw
0477デフォルトの名無しさん2005/06/26(日) 17:07:58
>>476
いや、設計は設計、実装は実装みたいな言いかたする割には、
実装に強く依存した設計するんだなって思ってさ。
0478デフォルトの名無しさん2005/06/26(日) 17:25:47
>>474 継承を使用しないでどうやって多態性を導入するの?
0479デフォルトの名無しさん2005/06/26(日) 17:27:16
Javaだったらインターフェースがあるけどさ
0480デフォルトの名無しさん2005/06/26(日) 17:33:16
>>469
またお前か
0481デフォルトの名無しさん2005/06/26(日) 17:42:45
>>477
てゆうか、設計が崩れたら実装はやり直しでしょ。
0482デフォルトの名無しさん2005/06/26(日) 18:08:11
設計が終わってから、新規にクラスを導入するってのはあり得ない事ではないんだけど、
設計終わってから継承、そしてポリモーフィズムを取り入れるってことは
新しくクラスを導入することが確定事項としてあるわけで、
それって設計が終わってないって事じゃないのか?
0483デフォルトの名無しさん2005/06/26(日) 18:12:40
HumanクラスがFactoryで生成されるのはオブジェクト指向的におかしい!
先ずはFatherクラスとMotherクラスを作るべきだ!

⊂⌒~⊃。Д。)⊃ どうでもいいですよ〜
0484デフォルトの名無しさん2005/06/26(日) 18:20:55
>>482は>>469への問題提起ね
0485デフォルトの名無しさん2005/06/26(日) 18:22:46
>>469
>対象物の構造をソースに反映させることだよ。 

この時点で大きな間違いを犯していることに気付いてくれ OTL

>継承やら多態性なんてのは本質からはずれまくってて話しにならないよ。 

んで、この行は前行と合わせるとえらく矛盾している事にも気付いてくれ OTL
0486デフォルトの名無しさん2005/06/26(日) 18:23:37
>>482
ウォーターフォールしか頭にないのか?

分析→設計→実装→分析→設計→実装→設計→実装→分析→設計→実装・・・

ってやっても別にいいんだぞ。
0487デフォルトの名無しさん2005/06/26(日) 18:24:02
>>483
ヒント:クローン
0488デフォルトの名無しさん2005/06/26(日) 18:25:10
>>485
ちゃんどどこがどうまちがっているまで書いてくれなきゃレスはつけないのでよろしく。

ちゃんと自分の主張を相手に伝えることぐらいはできなくちゃ駄目だよ。
プログラムがどんなに組めたってそれじゃいっしょに仕事ができない。
0489デフォルトの名無しさん2005/06/26(日) 18:31:19
>ちゃんと自分の主張を相手に伝えることぐらいはできなくちゃ駄目だよ。
主張するだけで具体性を伴ってないから、全く相手に伝わってない奴もいるな
0490デフォルトの名無しさん2005/06/26(日) 18:31:32
>>486 いいよ。それで。
問題にしているのは>>469が
> だいたい継承やら多態性なんてのは設計がきっちりできたあとの話だろ?
としていること。
>>469にとって継承のために新しくクラスを導入することは「設計をやり直す」
ことには属さない。
04914852005/06/26(日) 18:31:33
>>488
あ、了解。っていうか問題だけ提起して裏でごにょごにょ書いてたでス。


>対象物の構造をソースに反映させることだよ。  

オブジェクト指向を使えば、同じ対象物に対し、万人が同じ構造のソースを書いてくる……筈も無い事から、
構造を反映させるのは合っているが、構造の詳細はPGに任されると思った。
ニュアンスの問題。


>継承やら多態性なんてのは本質からはずれまくってて話しにならないよ。  

継承や多様性も含めた対象の構造を考えるのが、オブジェクト指向。
そこまで構造に反映させてくれ。
0492デフォルトの名無しさん2005/06/26(日) 18:33:24
自分は具体的な話から逃げておいて相手には具体的な内容を要求するとはなんたる自己矛盾
0493デフォルトの名無しさん2005/06/26(日) 18:37:26
>>469=>>474は
>>475と>>478をスルーするつもりなんだろうか?
0494デフォルトの名無しさん2005/06/26(日) 18:45:15
>>490
ん?文章的には結論がついてるみたいだけど、何が聞きたいの?

>>491
でもさ、継承や多態性なんて構造に入れるのなんて
対象物の構造が間違いないぐらいきっちりわかってからの話じゃない?
要は全体の設計にさほど影響を与えるものでは無いよ。
俺の組み方だけど継承やら多態性やらを考慮してクラスを組み変えるのは一度実装が
ほぼ終わりに近づいてからしかやったこと無いな。
そこまで設計とは遠いものだと考えてる。

ちなみに最近じゃ使って無い。(むしろ、使わない方がいいと思ってる。)
0495デフォルトの名無しさん2005/06/26(日) 18:46:02
>>493
悪いけど、>>474は俺じゃない。
pimplって何?w
0496デフォルトの名無しさん2005/06/26(日) 18:48:00
>>493
469と474て同一人物じゃないだろ?
同一人物だとしたら説が矛盾する。
04974932005/06/26(日) 18:50:14
>>495 そうか...スマン
Pimplは Exceptional C++ にありますです。
04984852005/06/26(日) 18:52:25
>>494
>対象物の構造が間違いないぐらいきっちりわかってからの話じゃない? 

つまり貴方は、何時も見切り発進でやってると……言うような冗談は置いておいて

・分かっているならば構造に組み込むというのは FA
・分かった時点で構造に組み込むというのも FA

だれも 『判明していない構造』 を組み込めなんて言ってないですし



>継承やら多態性やらを考慮してクラスを組み変えるのは

っていうか、もしかしたらと思ったんだけど、
『コーティングの技巧として、構造とは異なる継承や多様性を組み込む』
とかやってませんか?

それはオブジェクト指向から微妙に外れるし、それを 「オブジェクト指向とは言わない」 と言うのはトートロジ
04994852005/06/26(日) 18:57:23
なんかデザパタじゃなくてオブジェクト指向の話になっているけど、

>>494
俺でも確かに、継承とかを使わないときは全く使わないんだけど、それでも時折閃くときがあるんだな
そういうときには使う
0500デフォルトの名無しさん2005/06/26(日) 18:57:47
pimplって何?ときましたかw
これでコイツがC++で実務をこなした事は一度も無いって事が分かったな。

Java&J2EEに関する知識は皆無で、C++に関してはテンプレートに苦戦中
でpimplを知らないというレベル。なんとなく、どんな奴だか見えてきた。
05014902005/06/26(日) 18:57:51
>>494
聞きたいのは>>482だったんだが、
>>494を読む限り、君にとってis-aの関係のためのクラス導入は、
設計とはほぼ無関係であるとしてるね。

設計に無いクラスの導入を実装時にすることを確定事項とした設計であると理解して良いね?
0502デフォルトの名無しさん2005/06/26(日) 18:59:17
教えて君の奇形だろ。
0503デフォルトの名無しさん2005/06/26(日) 18:59:33
>>498
あ?なんか非常にわかりにくい文章で何言ってるのかわからない。
何がいいたかったの?
書いた本人的にも微妙でしょ?>>498の文章って。
05044852005/06/26(日) 19:00:42
>>503
微妙だけど?
0505デフォルトの名無しさん2005/06/26(日) 19:05:51
横レス申し訳ないんだが。
「構造」って「データ構造+論理構造」だよね?
0506デフォルトの名無しさん2005/06/26(日) 19:07:13
>>505
「オブジェクト構造」
05074852005/06/26(日) 19:17:51
まとめた

>>494
『コーティングの技巧として、想定していたオブジェクトの構造とは異なる継承や多様性を組み込む』 ことは、
たとえクラス等を使用していてもオブジェクト指向とは言えない (かもしれない)
0508デフォルトの名無しさん2005/06/26(日) 19:20:24
>>507
何がききてぇんだ?w
もう、てめぇの中で結論は出てるのか?w
05094852005/06/26(日) 19:22:39
>>508
何も聞きたくありませんわ
0510デフォルトの名無しさん2005/06/26(日) 19:33:05
is-aの関係なんて分析時に真っ先に判明するもんでしょ?普通は。
それを>>494では
> 継承やら多態性やらを考慮してクラスを組み変えるのは一度実装が
> ほぼ終わりに近づいてからしかやったこと無いな。
なんていっちゃってるし、これって設計せずにプログラミングしているのと何か違いがあるのか?
0511デフォルトの名無しさん2005/06/26(日) 19:39:40
1.要求定義
2.分析
3.設計
4.実装
5.品質管理

それぞれのステージにおいてOOの意味や役割が異なる。という前提は確認しあってるの?
0512デフォルトの名無しさん2005/06/26(日) 19:42:24
設計に落とす段階で挫折する人が多いようだけど。そういう人たちがデザパタに
頼っちゃうのかな?
0513デフォルトの名無しさん2005/06/26(日) 19:59:29
とデザパタに挫折した人が言っております。
05144852005/06/26(日) 20:03:16
デザパタに挫折したからどうなるってもんでも無いような気がしますが


デザパタって、料理のレシピみたいな物なのかもね
レシピを見れば、腕が良ければそこそこの料理ができる
レシピをたくさん眺めていれば、新しい料理を作ってみることもできる

……レシピを見なくても、料理できる人は料理しちゃう
0515デフォルトの名無しさん2005/06/26(日) 20:04:31
>>494は、先に継承・多態性を否定したデザパタ否定派が、
多態性を否定するとほとんどの既存のライブラリを使用できなくなることを指摘され、
それを無理に方向修正しようとして失敗した結果だろ?
0516デフォルトの名無しさん2005/06/26(日) 20:05:56
>>513
そういうパターンの使い方が限界なんだろうな。ここまでくると頭蓋骨の容積の問題か?
0517デフォルトの名無しさん2005/06/26(日) 20:07:32
>>516
?
512 への間違い?
0518デフォルトの名無しさん2005/06/26(日) 20:11:49
>>515
×デザパタ否定派
○デザパタ否定君
0519デフォルトの名無しさん2005/06/26(日) 20:14:07
>>517は天然?
05205172005/06/26(日) 20:20:29
>>519

>513 :デフォルトの名無しさん :2005/06/26(日) 19:59:29
> とデザパタに挫折した人が言っております。

>516 :デフォルトの名無しさん :2005/06/26(日) 20:05:56 
> >>513
>そういうパターンの使い方が限界なんだろうな。ここまでくると頭蓋骨の容積の問題か? 

ごめん。この2個のレスが全然繋がらないんだ
0521デフォルトの名無しさん2005/06/26(日) 20:28:13
>>428があるから継承・多態性を否定しないと、
デザパタはオブジェクト思考に従っていないからダメ
というロジックが崩れてしまうし、
かといって継承・多態性を完全に否定してしまうと今度は、
ほとんど全部の既存のライブラリを使えないことになってしまうし・・・

と、考えたデザパタ否定君は>>494をカキコしたのでしょう。
0522デフォルトの名無しさん2005/06/26(日) 20:28:47
>>520
だろうね。
0523デフォルトの名無しさん2005/06/26(日) 20:32:48
>オブジェクト指向の重要な概念として(1)カプセル化(2)継承(3)多態性というのがあるよね。
まあ、最も重要な概念である「振る舞い」を外してる時点でアレだけどね。
0524デフォルトの名無しさん2005/06/26(日) 20:33:51
>>523
「振る舞い」 というか 「インターフェイスの抽象化」 の方が
0525デフォルトの名無しさん2005/06/26(日) 20:41:04
>>524
もう一息だね。
「インターフェイスの抽象化」を「振る舞い」 と呼びたくなった時にはじめて
自分がテイクオフしたことを実感できると思うよ。頑張って!
0526デフォルトの名無しさん2005/06/26(日) 20:45:39
>>525
ああ、多分俺が考えているのと違うわ。
「対象物のインターフェイスを抽象化する」 = 「対象物の振る舞いを定義する」
0527デフォルトの名無しさん2005/06/26(日) 20:47:15
>>526
うん。違うね。
0528デフォルトの名無しさん2005/06/26(日) 20:50:02
単なる集約を抽象化などと小難しく表現するのは勘弁な。
0529デフォルトの名無しさん2005/06/26(日) 20:54:56
悪い。「振る舞いの定義」 の 「の定義」 って部分がさらりと出てこなかった。
0530デフォルトの名無しさん2005/06/26(日) 20:55:27
>>526
イタタタタ
053125 ◆41ucRLNOBQ 2005/06/26(日) 20:56:28
俺は>>508あたりからレスしてないぞ。
0532デフォルトの名無しさん2005/06/26(日) 20:57:56
>>531
それが何か?
0533デフォルトの名無しさん2005/06/26(日) 20:58:37
>>531
何か?
0534デフォルトの名無しさん2005/06/26(日) 21:14:39
ところで、今日考えてたんだけど、否定派の主張は

 『デザパタはオブジェクト指向に従っていない、トリッキーなコードである』

ってコトらしいけど、俺は仮説として

 『デザパタを適用してもオブジェクト指向に従っている例は存在するのではないか』

を考えた。否定派の主張を覆すならば、その様な具体例を示せれば良いと思う。
もし存在すれば、デザパタは反オブジェクト指向的コードを 強制する 物ではないと示せる筈だから。

んで、具体例を挙げるにあたって、

 『実世界の物体において実現されている構造ならば、オブジェクト指向で考えられる。つまり、オブジェクト指向に従っている』

と考えた。

【続く】
0535デフォルトの名無しさん2005/06/26(日) 21:14:51
【続き】

んで、試しに Strategy が適応されている、もしくは Strategy 的な構造になっている現実世界の実例を考えてみたら

 ・マザーボードと CPU の関係
 ・ゲームボーイとカートリッジの関係

とか、妙にたくさん出てきて困った。

これらの関係は、2つの接触部分を固定化して、片方を必要に応じて切り替えられるようになっている関係だ。
必要に応じて切り替えられる、って言うのはつまり切り替えなくても良い、って意味も含むけど。

んで、俺の仮説における具体例が示せたわけだが、果たして合っているだろうか……

======

あと、この例ならば、以前否定派の人が 「戦術をクラスとして抜き出すのはオブジェクト指向的ではない」
って言っていたことの、簡単な反証にもなると思う。

この主張は 「戦術≠オブジェクト」 ってコトを根拠にしているけど、
「抜き出す作業」 はつまり、「戦術を内包したオブジェクトを定義する」 ことに等しいから、そもそも問題になってない。
0536デフォルトの名無しさん2005/06/26(日) 21:25:12
>>534-535
>>386がよくまとまってるから読んでからにしたほうがいいと思う。
0537デフォルトの名無しさん2005/06/26(日) 21:29:04
>>536
否定派の主張が間違っているって言うこと?
その主張には何通りかあったと認識してたけど……
0538デフォルトの名無しさん2005/06/26(日) 21:34:49
ui
0539デフォルトの名無しさん2005/06/26(日) 22:01:18
いい加減に
『「現実物をそのままモデル化するのがオブジェクト指向」ってのは間違ってるんだぜ!ぎゃはは』
っていう釣りは止めてください。
おまいらは本当に進歩がないですね。
0540デフォルトの名無しさん2005/06/26(日) 22:01:41
わかったのか、前橋?
0541デフォルトの名無しさん2005/06/26(日) 22:04:51
『「現実物をそのままモデル化するのがオブジェクト指向」ってのは間違ってる』 って言ってるのは俺だけだなそういえば
0542デフォルトの名無しさん2005/06/26(日) 22:05:25
ところで前橋って何
0543デフォルトの名無しさん2005/06/26(日) 22:05:48
モノを知らない人が来ました。
0544デフォルトの名無しさん2005/06/26(日) 22:05:55
>>540
前橋って誰だー!
0545デフォルトの名無しさん2005/06/26(日) 23:06:27
=================================================================
     要するに、読む価値ないスレ。
     無理に読んだら、確実にバカが伝染する
=================================================================
0546デフォルトの名無しさん2005/06/26(日) 23:07:44
>>545
枠線付けないとみんなにスルーされると思って不安なんですねw
0547デフォルトの名無しさん2005/06/26(日) 23:08:07
ほんと、痛い人の巣窟
0548デフォルトの名無しさん2005/06/26(日) 23:10:15
これだけ痛い人が一つのスレに集まるのは奇跡的。
つか、どー考えても自作自演だろ、この痛さは
■ このスレッドは過去ログ倉庫に格納されています