〔隔離〕デザインパタ ..
357:259
05/06/25 03:10:11 BE:393338887-
>>351
待て待て、>>273 で継承を否定しておきながら、それはないだろ。
>>345 は継承なくては実現し得ないんだぞ。
358:デフォルトの名無しさん
05/06/25 03:11:21
template<typename T>
calss singleton
{
static T ret;
public:
static T& get(){return ret;}
template<typename X1>
static T& set(const X1& x){ ret=T(x); return ret;}
template<typename X1,typename X2>
static T& set(const X1& x1,const X2& x2){ret=T(x1,x2);return ret;}
//... X3 X4 X5 ...
};
template<typename T> T singleton<T>::ret;
...
...
singleton<hoge> x;
hoge y = x.set("username");
...
...
vector vec;
...
singleton<vector<char> > v;
v.set(vec.begin(),vec.end());
vector vv=v.get();
...
v.set(1024,'\0');
read(fp,&v.get()[0],v.get().size());
...
class hoge2 : public singleton<hoge2> {}
...
テンプレートかますとそれなりに便利だが。
使い道がいまいち謎だ。
359:デフォルトの名無しさん
05/06/25 03:11:41
どーでもいいですよ。
>>273と>>351で同じ仮定をしなければならない義理があるわけでもなし。
つか、同じ仮定をしつこく主張しつづけたら、議論は進まない。
360:259
05/06/25 03:13:02 BE:252860494-
>>345 は継承による仕様変更の典型例だってことを言ってるのよ。
仕様変更に継承を用いることを肯定するなら、この問題は終結するはずなのだが。
361:デフォルトの名無しさん
05/06/25 03:13:10
>>358
>>271
362:234
05/06/25 03:13:46
>>357
ぼくはべつに継承を常に否定してるわけじゃないんですが。
不要な継承を否定してるだけです。
>>345は、インタフェースを合わせるために必要な継承を巧みに使っている
例ですね。
まあ、実際にこういうtechniqueが実際にどれだけ必要になるかといえば、
疑問ですが。
363:デフォルトの名無しさん
05/06/25 03:13:49
>>360
じゃ終結って事で。
364:デフォルトの名無しさん
05/06/25 03:13:56
>>349
少なくともお前は理解していないw
オブジェクト指向云々に関する話題は>>345には出ていない。
したがってお前はまぬけだ。
>オブジェクト指向を理解しないとデザパタ理解できないぜ。
これはまったくの嘘。
デザパタはオブジェクト指向なんてまったく知らない奴が作った物。
よっぽどのアホでもなきゃ騙されないけどねw
現にここにいる奴のほとんどが学生だろ?
言語は覚えたけど、プログラムが組めないってレベルの奴。
まあ、プログラマでもないのにいきなり現場にぶち込まれた奴が
たくさんいるからこのレベルの奴だと色々模索するから
学校のお勉強に近いデザパタに妄信する奴がでてくるんだよね。
だけど、いくら勉強してもプログラムなんて組めるようにはならない。
図星だろ?
くくくっ、プログラムの組み方が書いてある本が世にあるとよかったなぁw
365:334
05/06/25 03:14:07
>>347
あれ?アンチの人?おまいよく状況を知ってるなwwww
そうなんだよ昔から相手を馬鹿にするだけで、ろくな議論しないんだよあのスレwww
だからここを有益なところにしようw
>デザパタ自体はシングルトン1つとっても意見はバラバラ。
>コミュニケーションツールなんて夢のまた夢。
コミュニケーションツールは確かに無理だねぇ。
書籍にしても著者によって捉え方が全然違う。
読んだ書籍によって、読み手も捉え方が異なってしまうし。
うーん、まあコーディングテクニック集ってとこなのかなぁ。
366:デフォルトの名無しさん
05/06/25 03:14:58
なんだ、NGワードが増えてきたな。
携帯4っつ使ってレス付けてるのか(笑
367:デフォルトの名無しさん
05/06/25 03:16:18
□■□■□ 祝!秀ケツ ■□■□■
368:234
05/06/25 03:16:22
ああ、なるほど
>>259さんには、あのアダプタの適用も「仕様変更に際して用いられる
典型的なtechnique」なのか。
その辺が僕とは認識が違いますね。
まあ、仕様変更といっても色々ありますから、なんとも言えませんが、
Singletonのようなインスタンスが一つだけのクラスに、このようなアダプタを
噛ませることがベストな解である、というタイプの仕様変更って
そんなに無い気がしますよ?
369:259
05/06/25 03:16:29 BE:112383528-
結局 >>234 は >>234 の質問から何を知りたかったわけ?
370:デフォルトの名無しさん
05/06/25 03:17:13
いままでどおり、机に向かって勉強してればプログラムが組めるようになるとでも思ったか?学生諸君w
ならないだろ?ざまーみろw死ぬまでくるしめw
371:234
05/06/25 03:17:53
>>369
まあ、こんだけスレも盛り上がってることですし、いいじゃないですか(w
372:334
05/06/25 03:19:03
>>351
そですね。私の理解としては逃げ道つくるぐらいですかね。
開発してる時とかにメソッド呼ぶ前に、ログをとるデコレータクラスとかよく作ります。
そういった面で扱いやすいってだけですかね。
他にもメリットはあるかもしれませんが。
>でも、加工前にgetInstance()しなきゃいかんのはちょっとカッコ悪いですね。
↓これでどうでしょう・・・。一行にしてみました。だめですか・・・。
Singleton s = new TuikaKinouSingleten(Singleton.getInstance());
373:デフォルトの名無しさん
05/06/25 03:19:53
>>369
たぶん、getInstance()にパラメータつけるより getFoo(), getBar()の方がいい、とか、
それよりも static methodの方がもっとシンプル (継承できないけど継承は仕様変更の手段とすべきではない)
とか。じゃねぇ〜の。いい加減寝るぞ
374:259
05/06/25 03:22:05 BE:393338887-
>>368
>Singletonのようなインスタンスが一つだけのクラスに、このようなアダプタを
>噛ませることがベストな解である、というタイプの仕様変更って
>そんなに無い気がしますよ?
ベタベタだがたとえばウィジットを生成する Factory。プラットフォームによって切り替え。
そんなにワサワサと例は出せないが。
逆に仕様変更のない Singleton は Singleton である必要がない気がする。
それこそ Utility 的な。
>>371
まぁそうだなw
375:デフォルトの名無しさん
05/06/25 03:22:10
正直、アンチの俺の意見としても継承の悪用は止めたほうがいいといっておく。
376:デフォルトの名無しさん
05/06/25 03:26:32
そもそもUtilityクラスとは、オブジェクト指向設計の放棄である (とりあえずそこまでクラス化するゆとりがないとか含む)
である事を指摘しておこう。
377:259
05/06/25 03:34:50 BE:393338887-
タイピングがめんどくさい、かつ、仕様変更に耐えうるシングルトンっぽいものを。
単にラッパーしただけな気もするが。ただの思い付きなんで落ち度があったら優しくつっこんで。
クラスAの実装自体のタイピングがめんどくさいけど。
class A{
static StrategySingleton s=StrategySingleton.instance();
static void invoke(){
s.invoke();
}
}
A.invoke();
>>375
悪用ってのがどんな例だかわからんが、肯定派からも言わせてもらうと、
GoF本でも継承の濫用はするな、って書いてあった。
いちいち新しい動作を定義するのに毎回クラスを継承してたんじゃ、クラス増えまくりだからな。
>>376
まぁたしかにそうだな。
基本演算と同じレベルで考えればいいんじゃないか、と思う。
さすがに基本演算までオブジェクト指向にすることもなかろうと。
378:234
05/06/25 03:39:14
>>377
「全ての問題は間接参照をはさめば解決する」という
Andrew Koenigの言葉を思い出すような例ですね(w
379:デフォルトの名無しさん
05/06/25 05:35:21
・グローバル変数はダメ
・Singletonはダメ
・デザパタなんか誰も使っていない、普及していない
とほざく奴はJavadWebアプリの業務をやったことないだけだろ。
Javaではグローバル変数なんて概念はないし
Singletonはリクエストのたびにオブジェクト生成されるのを
防ぐために普通に使われるし(Factoryにすることも多い)
デザパタは使わないとスパゲッティ化してどうにもならなくなる
ってぐらいに当たり前のように使われている。
自分の知っている狭い世界だけで使ってないからって断言するな。クズ。
380:デフォルトの名無しさん
05/06/25 07:56:46
そもそもそんなそうちょうに、
なにあたりまえのことりきせつしてるの?
このすれは、
ていどのひくいひとがひっしにかんがえた
どうしようもなくていどのひくいねたを
かくりするすれだよ(わらい
381:デフォルトの名無しさん
05/06/25 07:57:55
そもそもそんなそうちょうに、
なにあたりまえのことりきせつしてるの?
このすれは、
ていどのひくいひとがひっしにかんがえた
どうしようもなくていどのひくいねたを
かくりするすれだよ(わらい
382:デフォルトの名無しさん
05/06/25 13:31:42
なんでデザパタの由来も知らないような奴が、
「デザパタ肯定≠オブジェクト指向」
なんて言う脳内仮定で煽ってんの?
オブ戦スレの馬鹿がTMPこそデザパタとか
勘違いして、逆の立場で煽ってるの?
383:デフォルトの名無しさん
05/06/25 13:53:14
>>382
つか、「デザパタ自体、OOではない」らしいよ。奴にとって。
384:デフォルトの名無しさん
05/06/25 15:48:50
>>382
じゃあ、君がデザパタがオブジェクト指向にのっとっていることを証明したまえ。
ちなみに前スレだとデザパタはオブジェクト指向とは違う流れで
それは新しい進化ということで決着がついていた。
385:383じゃないが
05/06/25 15:52:27
>>384
なんとなく悪魔の証明っぽいな
OO 使わずとも組めるパターンもあるだろうに
386:デフォルトの名無しさん
05/06/25 16:10:07
いままでのデザパタ否定派の主張は
オブジェクト指向での設計を、「対象物の構造をそのままソースに反映させること」として
デザパタでの設計を、「パターンを用いてそれに当てはめること」とし、
オブジェクト指向とデザパタが根本的に設計理念の異なるものだということだった。
この主張の矛盾点を指摘する形では肯定派も否定派も
両者を納得させるまでにはいかず、煽りを繰り返すレスがついた。
はじめの主張が
「デザパタはオブジェクト指向では無い」
というところからはじまっているだけあって、アンチが主導権を握ってしまうのは仕方がないと思う。
387:俺は肯定派?
05/06/25 16:25:56
> いままでのデザパタ否定派の主張は
> オブジェクト指向での設計を、「対象物の構造をそのままソースに反映させること」として
> デザパタでの設計を、「パターンを用いてそれに当てはめること」とし、
このあたりは既に俺の考えとは違っていて、
> オブジェクト指向とデザパタが根本的に設計理念の異なるものだということだった。
これは当たり前だと思っている
388:デフォルトの名無しさん
05/06/25 16:56:54
>>384
>それは新しい進化ということで決着がついていた。
>それは新しい進化ということで決着がついていた。
>それは新しい進化ということで決着がついていた。
>それは新しい進化ということで決着がついていた。
389:デフォルトの名無しさん
05/06/25 17:44:18
やっぱりデザパタは僕の嫌いなオブジェクト指向じゃなかったんだ!
って思って欲しいのですか?
でオセロのソースでも晒すつもりですか?
おまいらは本当に進歩がないですね。
390:デフォルトの名無しさん
05/06/25 19:59:08
パターンはOO以前からあるし、互いに独立した手法だ。
>>389
まあ、そーゆースレだしね。適当に盛り上げといて。
391:デフォルトの名無しさん
05/06/25 21:02:46
>>390
どっちかと言うとテンプレートライブラリに近い。
テンプレートライブラリ化出来ないレベルを
デザインパターンで扱うべきなんだけど、
GoFのやってる事は、気持ち悪いタイプの
馬鹿プログラマみたいだ。
392:デフォルトの名無しさん
05/06/25 21:53:35
>>391
いくら明日予定が入って無いからって、そんなネタで暇つぶしの相手をみつようったってそうはいかない。
393:デフォルトの名無しさん
05/06/25 22:05:13
>>390
脳内妄想ステキー
394:デフォルトの名無しさん
05/06/25 22:06:14
>>392
今週のレスの付き具合を見るに、
>>391は毎日がエブリディもとい毎日が特別休日みたいだぞw
395:デフォルトの名無しさん
05/06/25 22:33:30
でも、マジな話、GoFのパターンは使えない。
てか、もういらない。
396:デフォルトの名無しさん
05/06/25 22:47:52
「パターン」はOOP以外にも適応できる概念だが、
それを「パターン」としてきっちり言語化したのはGoF以降だろう。
で、GoFのパターンの源はSmalltalkやC++での経験の蓄積が
元になっていると。
今では「デザインパターン」の語がOOPの領域以外にも
広げられてたとえば「モナド」は高階関数のデザパタの
一つ、と言ったりするわけだな。
だが、ここの厨がいってるような、デザパタはテンプレートで
オブジェクト指向とは関係ない、とかってのは、激しく
思い違いもいいところだ。
前橋、わかったのか?
397:デフォルトの名無しさん
05/06/25 22:48:05
>>394
毎日が出社とかも考えろ!!
ボケ、糞、カス、キチガイ、狂信者。
398:デフォルトの名無しさん
05/06/25 22:49:43
>>396
関係ないけどオブジェクト指向でも使えるのがデザインパターンなんで、
オブジェクト指向と関係ないちゅーのも、正しい物の見方だよ。
399:デフォルトの名無しさん
05/06/25 22:51:23
>>398
「パターン」としてきっちり言語化したのはGoF以降。
歴史は覆せないよ。
400:デフォルトの名無しさん
05/06/25 22:55:30
>>399
はぁ?
だからなんだってんだよ、GoFがオブジェクト指向的要素として
デザパタを提唱したんなら、オブジェクト指向の一部か否かてな
議論もなりたつが、C言語のデザインパターンだって成り立つんだから、
オブジェクト指向とは関係ないね。
で、GoFが出したカタログは、オブジェクト指向を破壊するデザインパターン
が多すぎるから誤解招いてるんだろ。糞。
401:デフォルトの名無しさん
05/06/25 23:01:25
>>400
>オブジェクト指向を破壊するデザインパターン
相変わらず具体性ないねw
402:デフォルトの名無しさん
05/06/25 23:02:26
これだから厨はいやなんだよ。関係ないも何も
デザインパターンが意識され始めたのは、
オブジェクト指向による設計に関する経験から
来ているのは事実なんだから。
そこで「デザインパターン」という、
「ライブラリ」なんかとは抽象レベルの違う概念が
意識されてきたわけで、あとから考えれば、
コレもアレもパターンてのは当然ある。
結局おまいらのいってるのは「CでもOOPできるYO」
ってのと同じく「Cでもデザパタできるよ」って言って
るだけで、吠えてみたところで、オブジェクト指向に
とってデザパタが重要なことに変わりはない。
403:デフォルトの名無しさん
05/06/25 23:03:31
わかったのか、前橋。
404:デフォルトの名無しさん
05/06/25 23:04:19
=================================================================
暑さのためおかしくなった不審人物がが大喜びではしゃいでます。
一般の方は刺されないように退避して下さい。
(隣組回覧)
=================================================================
405:デフォルトの名無しさん
05/06/25 23:08:51
前橋ってデザインパターンに否定的な見解なの?
406:デフォルトの名無しさん
05/06/25 23:09:29
無職5年とか不審人物とまで蔑まれてるのに、
それでも構ってもらえたと勘違いして、
大喜びで自作自演レスしまくるとは、相当なもんだよな。
きっと、人との交流に激しい飢餓感を持ってるのだろうな。
もまいさぁ、いい加減、額に汗して働けよ。
俺今日、土曜出勤でエアコン効いてない室内で熱中症になりかかったんだぞ
407:デフォルトの名無しさん
05/06/25 23:21:34
>>402
1994年に標準化されたSTLが有るのに、
95年に書かれたデザインパターンをもって、
新しいってのはちょっと違うなぁと思うぞ。
408:デフォルトの名無しさん
05/06/25 23:45:04
>>407
はぁ〜。GoF程度は読んどけよ。まったく。
あれのパターンの元ネタはSmalltalk-80やMacAppやその他。
この期に及んでSTL持ち出すのも馬鹿丸出し。
409:デフォルトの名無しさん
05/06/25 23:50:32
>>406
>>俺今日、土曜出勤でエアコン効いてない室内で熱中症になりかかったんだぞ
どうやら >>406 にとって「働いている・働いていない」の基準とは、
室内のエアコンが「利いている・利いていない」って所らしいな。
410:デフォルトの名無しさん
05/06/25 23:56:42
いくらデザパタがオブジェクト指向からできたって、#あの糞設計をみるとそれも怪しいが・・・w
デザパタでの設計がオブジェクト指向にのっとっているかは別問題。
やっぱりオブジェクト指向とは考え方が違う。
オブジェクト指向で似通った設計を集めてそれをパターンにして当てはめたって
それはオブジェクト指向での設計にはならない。
411:デフォルトの名無しさん
05/06/26 00:20:29
| Hit!!
|
|
ぱくっ|
/V\
/◎;;;,;,,,,ヽそんなエサで
_ ム::::(,,゚Д゚)::| 俺様が釣られると思ってんのか!!
ヽツ.(ノ:::::::::.:::::.:..|)
ヾソ:::::::::::::::::.:ノ
` ー U'"U'
412:デフォルトの名無しさん
05/06/26 03:02:48
>>410
オブジェクトであるパーツを再利用するとオブジェクト指向じゃねえって意味わかんないんですけど。
で、デザパタのどこがクソ設計なのか具体的に挙げてもらえますか?そしてそれはどう設計されるべきですか?
413:デフォルトの名無しさん
05/06/26 03:08:07
>>400
>C言語のデザインパターンだって成り立つんだから、オブジェクト指向とは関係ないね。
へぇ、オブジェクト指向って言語依存なんだ。てっきり設計の指針みたいなもんだと思ってたが。
プログラムできない人の考えることはオリジナリティがあっていいねw
414:デフォルトの名無しさん
05/06/26 03:24:06
>>412
それは実装の話。
設計段階でオブジェクト指向では対象物をそのままソースに移すことが重要。
その結果、同じクラスが出てきたら、再利用できるできないを検討すればいい。
パターンに当てはめてしまうデザパタとはやはり違う。
415:デフォルトの名無しさん
05/06/26 03:38:54
デザパタ=パターンに当てはめて設計する
という前提が異常。
416:デフォルトの名無しさん
05/06/26 03:40:25
>>415
じゃあ、パターンっていつ使うんだよw
417:デフォルトの名無しさん
05/06/26 03:58:57
>>414
煽りじゃなくってこれはいっとかなきゃいけないと思うので書くが、キミ全く判ってないよ。
デザパタで語られるパターンてのはジェネリックかつプリミティブ。
STLで言ったら、vectorとかlistみたいなもんだ。
「クラスのメンバーにvectorがあったらオブジェクト指向じゃない」なんて命題は有り得ないわけよ。
vectorはプリミティブなテンプレートクラスであって、これによって設計がOOPかどうかを判断するなんて全くナンセンス。
まず、GoF本くらい読んで「理解して」から書き込みしなよ。
418:デフォルトの名無しさん
05/06/26 04:23:16
>>417
なんでそこで実装の話がでちゃうのか理解不能。
余計わからない。
少なくとも本スレからこのスレでデザパタのパターンの話をしている人間も
パターンに当てはめる形で設計をしている。
これは「〜パターンが使えそうですね。」的な発言も見られることから明らか。
わけのわからないことを言わないでもらいたい。
419:デフォルトの名無しさん
05/06/26 04:24:58
レスに困ったら「それは実装の話」と言っちゃえばいいわけか。参考にしよう。
420:デフォルトの名無しさん
05/06/26 04:29:23
>>419
ハイハイ、そこは重要な箇所じゃないでしょ?
くだらない煽り入れないでね。
ちゃんと↓に答えてね
少なくとも本スレからこのスレでデザパタのパターンの話をしている人間も
パターンに当てはめる形で設計をしている。
これは「〜パターンが使えそうですね。」的な発言も見られることから明らか。
わけのわからないことを言わないでもらいたい。
421:デフォルトの名無しさん
05/06/26 05:03:04
もっと使いやすいパターンが普及すれば良い
っていう話?
422:デフォルトの名無しさん
05/06/26 05:31:37
>>420
じゃ、君は以前に自分が使った設計の方法を思い出して
「あ、ここはあのやり方が使えるな」と思うことはないのか?
そう思った時点でそれはオブジェクト指向ではないのか?
ばっかじゃねえの。
423:デフォルトの名無しさん
05/06/26 05:39:20
>>417
C言語でシングルトンパターンをどうやって利用しようか?
コンストラクターを隠蔽するから、一意性が保たれる?
プッって感じ。
では、オブジェクト指向的に考えてみようか?
インスタンスの生成を隠蔽すると安全なシステムになる?
プッて感じ。
GoF煎ってよし。
424:デフォルトの名無しさん
05/06/26 06:10:47
GoF本知る前からTemplateMethodとかCompositeパターンは使ってたなぁ(というかそうなってた)。
あれって継承とか多態とかオブジェクト指向独特のテクニックを駆使してるし、
そういう意味でデザパタがオブジェクト指向の文脈で語られるのは当然かなぁ。
GoFのパターンが糞というのはそれぞれのスタンスとしてはいいと思うけど、
それがオブジェクト指向から外れてるってのはちょっと的外れかなぁ。
あ、もしかして継承も多態も認めない、原理主義的オブジェクト指向信者だっていうなら納得w
でも、それだって単にオブジェクト指向に対するスタンスの違いってだけの話しだよねぇ・・・
425:デフォルトの名無しさん
05/06/26 10:31:43
× 継承も多態も認めない、原理主義的オブジェクト指向信者
○ 継承も多態も解らない、抽象的に物事が考えられないバカ
426:デフォルトの名無しさん
05/06/26 11:35:15
アンチの主張は抽象的かつ主観的でなんら具体性も客観性もない全く内容のないものだ
427:デフォルトの名無しさん
05/06/26 11:42:55
>>424
>それがオブジェクト指向から外れてるってのはちょっと的外れかなぁ。
理由を言ってよ。
議論にならない。
428:デフォルトの名無しさん
05/06/26 12:08:10
>>427
一般にオブジェクト指向の重要な概念として(1)カプセル化(2)継承(3)多態性というのがあるよね。
デザインパターンはこれらの概念をいかに設計レベルで利用するかと言うサンプル集みたいなものだから、
やはりオブジェクト指向の文脈で語られるべきものだと思うんだよね
429:デフォルトの名無しさん
05/06/26 12:32:45
>>428
そりゃオブジェクト指向言語の機能じゃね?w
はなしにならねー
さすがにお前みたいな肯定派はいなかったぞw
430:デフォルトの名無しさん
05/06/26 12:33:52
>>420
ちゃんと答えるも何も、なにを答えたらいいのかわからない。
「パターンを当てはめる形で設計している。」に対して
「はい」または「いいえ」と答えればよいということかな?
その答えが知りたい意図がわからない。
431:デフォルトの名無しさん
05/06/26 12:35:26
>>430
それでいいよ。
432:430
05/06/26 12:36:54
>>420
それでいつも>>419のようにある程度、具体的な話にもっていってるのに、
>>420はいつも宙ぶらりなレスを返すからこちらとしても議論ができない。
433:430
05/06/26 12:38:12
>>431
ああ、そうなの。
つまり、君が結論を出したかったことは
「パターンを当てはめる形で設計している。」に対して
「はい」って答えさせたかったってだけなのね。
それ以外の議論はしたくないと。
434:デフォルトの名無しさん
05/06/26 12:39:15
>>429
デザインの話だから言語とは独立したお話。
という建前だけど、実際には言語の使用に引っ張られることも多いやねぇ・・・
435:デフォルトの名無しさん
05/06/26 12:42:01
GoFは言語から独立だろ。
436:デフォルトの名無しさん
05/06/26 13:03:11
>>429
オブジェクト指向自体にはカプセル化や多態性の概念って無かったんだっけか?
むか〜しに
URLリンク(www.amazon.co.jp)
でオブジェクト指向勉強したんだが、これにはそんな風に書いては無かったと
思う(もはや手元に無いので未確認。間違ってたらごめん)。
437:デフォルトの名無しさん
05/06/26 13:07:24
>>417のどこが実装の話なのかよくわからない
っていうかアンチにとってどこからが実装の話なのかもよくわからない
438:デフォルトの名無しさん
05/06/26 13:08:59
多態がなけりゃオブジェクト指向なんて役にたたねぇ
439:デフォルトの名無しさん
05/06/26 13:24:27
ここのオブジェクト指向信者は、
カプセル化や多態性も分からずにオブジェクト指向を語っていたのか...
それこそ話にならん
440:デフォルトの名無しさん
05/06/26 13:26:57
>>439
そりゃ実装技術だろ。
オブジェクト指向での設計の話をしているだろ。
441:デフォルトの名無しさん
05/06/26 13:30:07
>>440
え?ポリモーフィズム意識せずに設計やってんの?マジで?
442:デフォルトの名無しさん
05/06/26 13:30:10
>>440
おいおい、実装だけの話ではないよw
適当に検索してみればいくらでも出てくると思うがなぁ・・・
443:デフォルトの名無しさん
05/06/26 13:30:47
>>440
継承やカプセル化や多態性を考慮しながらクラス図を描いたりしないのか?
444:デフォルトの名無しさん
05/06/26 13:34:59
>>441
やってるよ。マジで。
その辺って後からできた技術でしょ?
純正のオブジェクト指向信者の俺はそんな無駄なことはしない。
カプセル化なんて意識しなくても普通になるが、
継承や多態性なんて狙って設計なんかすると糞設計まっしぐらだぞ。
445:デフォルトの名無しさん
05/06/26 13:38:20
>>441
> その辺って後からできた技術でしょ?
情報源を希望
446:デフォルトの名無しさん
05/06/26 13:38:28
多態を考慮しない設計なんてオブジェクト指向じゃないよ・・・
447:445
05/06/26 13:39:20
×>>441
○>>444
スマン orz
448:デフォルトの名無しさん
05/06/26 13:39:43
後からできたどころか、多態なんかはオブジェクト指向の本質だなんだけどね
449:デフォルトの名無しさん
05/06/26 13:40:27
>>446
なんで?
多態性や継承なんてバグの温床だと思うけど?
450:デフォルトの名無しさん
05/06/26 13:41:48
>>449
> 多態性や継承なんてバグの温床だと思うけど
なんでそう思ったんだい?
451:デフォルトの名無しさん
05/06/26 13:41:58
>>448
本質じゃないよ。
本質は対象物の構造をそのままソースに映すことだよ。
多態性なんて付属品じゃないか。
452:デフォルトの名無しさん
05/06/26 13:43:29
>>450
自分の主張を入れて無いレスにレスは返さないよ。
自分はどう思うけど〜って形にしてくれない?
453:デフォルトの名無しさん
05/06/26 13:45:16
対象物の構造をそのままなんていってるが
純粋架空物のクラスは作らないのかよ
454:デフォルトの名無しさん
05/06/26 13:46:10
オブジェクト指向に多態性が必要ないっていう意見は初めて聞いたな
455:デフォルトの名無しさん
05/06/26 13:48:40
>>454
なぜそっちを相手にしてるのか?
が疑問だ。
456:デフォルトの名無しさん
05/06/26 13:48:44
>>454
心に刻んでおきたまへw
457:デフォルトの名無しさん
05/06/26 13:52:16
>>450
多分、>>449はC++プログラマーで基底クラスのデストラクタをvirtualにし忘れたとか、
そういう低レベルのことをいっているんジャマイカ?
458:デフォルトの名無しさん
05/06/26 13:55:43
多態を否定すると、Javaのライブラリが何も使えなくなってしまうなw
459:デフォルトの名無しさん
05/06/26 13:57:15
おい、34℃超えたってよ。
460:デフォルトの名無しさん
05/06/26 14:01:03
>>458
アンチの彼はC++しか使ったこと無いみたいだから、いいんじゃネーノ
461:デフォルトの名無しさん
05/06/26 14:01:17
>>458 boostもC++の標準ライブラリも使えないっす。つらすぎる。
462:デフォルトの名無しさん
05/06/26 14:01:23
>>457
そのレベルなの?
基底クラスをバーチャルにするしないは、場合よるか、
統一事項の世界かと?
463:デフォルトの名無しさん
05/06/26 14:02:49
>>441
設計、分析、実装の違いがわからん厨は糞して寝ろw
464:デフォルトの名無しさん
05/06/26 14:07:05
>>461
MFCも使えないな。
# まぁ、別の意味でMFCは使えないライブラリだし、いいのか?
465:デフォルトの名無しさん
05/06/26 14:08:28
C++ライブラリはまず全滅。
Cの時代に逆戻り。
466:デフォルトの名無しさん
05/06/26 15:24:27
なんだ、この程度のを相手にしていたのか。
キミにはなっかりだよ。
467:デフォルトの名無しさん
05/06/26 15:24:36 BE:56191542-
(´ー`)早くID導入されてほしいな
468:デフォルトの名無しさん
05/06/26 15:32:50
継承とポリモーフィズム使わないんならそれはオブジェクト指向じゃなくて
モジュール指向だとか抽象データ型の世界だろ
別に後者が悪いという訳じゃないが、オブジェクト指向を後者から決定的に
峻別するものが継承とポリモーフィズム。
469:デフォルトの名無しさん
05/06/26 16:30:54
>>468
なんどもいうけど
オブジェクト指向ってのは
対象物の構造をソースに反映させることだよ。
継承やら多態性なんてのは本質からはずれまくってて話しにならないよ。
だいたい継承やら多態性なんてのは設計がきっちりできたあとの話だろ?
結局、設計が腐ってたら継承だって多態性だって全く意味が無いよ。
470:デフォルトの名無しさん
05/06/26 16:40:31
>>469 ポリモーフィズムの意味を理解した上での発言だよね?
471:デフォルトの名無しさん
05/06/26 16:41:52
>>470
そのつもり。
まず、正しい分析、正しい設計ありき。
継承や多態性なんて出てくるのはあとのあと。
472:デフォルトの名無しさん
05/06/26 16:47:56
>>471 設計終わってから新しくクラス派生させるの?
設計終わってから派生させちゃいけないっていってるわけじゃないよ。
でも実装時にクラス派生させることを前提にした設計って...
473:デフォルトの名無しさん
05/06/26 16:52:03
>>449
使いこなせない事の言い訳に「バグの温床」というのは
よく聞かれる詭弁ですね。
474:デフォルトの名無しさん
05/06/26 16:52:10
継承なんて面倒なんで、pimpl使えばいい、
どうせ関数呼出しに関しては継承とたいして変わらん、
動的な切替えもできるし。
475:デフォルトの名無しさん
05/06/26 16:59:10
>>474
pimplイディオムは良くってデザインパターンはダメってのが良く分からん。
pimplではなく委譲といえばまだ分かるんだが・・・
476:デフォルトの名無しさん
05/06/26 17:03:36
>>472
そんなウォーターフォールな脳みそでこの先どうするつもりだw
477:デフォルトの名無しさん
05/06/26 17:07:58
>>476
いや、設計は設計、実装は実装みたいな言いかたする割には、
実装に強く依存した設計するんだなって思ってさ。
478:デフォルトの名無しさん
05/06/26 17:25:47
>>474 継承を使用しないでどうやって多態性を導入するの?
479:デフォルトの名無しさん
05/06/26 17:27:16
Javaだったらインターフェースがあるけどさ
480:デフォルトの名無しさん
05/06/26 17:33:16
>>469
またお前か
481:デフォルトの名無しさん
05/06/26 17:42:45
>>477
てゆうか、設計が崩れたら実装はやり直しでしょ。
482:デフォルトの名無しさん
05/06/26 18:08:11
設計が終わってから、新規にクラスを導入するってのはあり得ない事ではないんだけど、
設計終わってから継承、そしてポリモーフィズムを取り入れるってことは
新しくクラスを導入することが確定事項としてあるわけで、
それって設計が終わってないって事じゃないのか?
483:デフォルトの名無しさん
05/06/26 18:12:40
HumanクラスがFactoryで生成されるのはオブジェクト指向的におかしい!
先ずはFatherクラスとMotherクラスを作るべきだ!
⊂⌒~⊃。Д。)⊃ どうでもいいですよ〜
484:デフォルトの名無しさん
05/06/26 18:20:55
>>482は>>469への問題提起ね
485:デフォルトの名無しさん
05/06/26 18:22:46
>>469
>対象物の構造をソースに反映させることだよ。
この時点で大きな間違いを犯していることに気付いてくれ OTL
>継承やら多態性なんてのは本質からはずれまくってて話しにならないよ。
んで、この行は前行と合わせるとえらく矛盾している事にも気付いてくれ OTL
486:デフォルトの名無しさん
05/06/26 18:23:37
>>482
ウォーターフォールしか頭にないのか?
分析→設計→実装→分析→設計→実装→設計→実装→分析→設計→実装・・・
ってやっても別にいいんだぞ。
487:デフォルトの名無しさん
05/06/26 18:24:02
>>483
ヒント:クローン
488:デフォルトの名無しさん
05/06/26 18:25:10
>>485
ちゃんどどこがどうまちがっているまで書いてくれなきゃレスはつけないのでよろしく。
ちゃんと自分の主張を相手に伝えることぐらいはできなくちゃ駄目だよ。
プログラムがどんなに組めたってそれじゃいっしょに仕事ができない。
489:デフォルトの名無しさん
05/06/26 18:31:19
>ちゃんと自分の主張を相手に伝えることぐらいはできなくちゃ駄目だよ。
主張するだけで具体性を伴ってないから、全く相手に伝わってない奴もいるな
490:デフォルトの名無しさん
05/06/26 18:31:32
>>486 いいよ。それで。
問題にしているのは>>469が
> だいたい継承やら多態性なんてのは設計がきっちりできたあとの話だろ?
としていること。
>>469にとって継承のために新しくクラスを導入することは「設計をやり直す」
ことには属さない。
491:485
05/06/26 18:31:33
>>488
あ、了解。っていうか問題だけ提起して裏でごにょごにょ書いてたでス。
>対象物の構造をソースに反映させることだよ。
オブジェクト指向を使えば、同じ対象物に対し、万人が同じ構造のソースを書いてくる……筈も無い事から、
構造を反映させるのは合っているが、構造の詳細はPGに任されると思った。
ニュアンスの問題。
>継承やら多態性なんてのは本質からはずれまくってて話しにならないよ。
継承や多様性も含めた対象の構造を考えるのが、オブジェクト指向。
そこまで構造に反映させてくれ。
492:デフォルトの名無しさん
05/06/26 18:33:24
自分は具体的な話から逃げておいて相手には具体的な内容を要求するとはなんたる自己矛盾
493:デフォルトの名無しさん
05/06/26 18:37:26
>>469=>>474は
>>475と>>478をスルーするつもりなんだろうか?
494:デフォルトの名無しさん
05/06/26 18:45:15
>>490
ん?文章的には結論がついてるみたいだけど、何が聞きたいの?
>>491
でもさ、継承や多態性なんて構造に入れるのなんて
対象物の構造が間違いないぐらいきっちりわかってからの話じゃない?
要は全体の設計にさほど影響を与えるものでは無いよ。
俺の組み方だけど継承やら多態性やらを考慮してクラスを組み変えるのは一度実装が
ほぼ終わりに近づいてからしかやったこと無いな。
そこまで設計とは遠いものだと考えてる。
ちなみに最近じゃ使って無い。(むしろ、使わない方がいいと思ってる。)
495:デフォルトの名無しさん
05/06/26 18:46:02
>>493
悪いけど、>>474は俺じゃない。
pimplって何?w
496:デフォルトの名無しさん
05/06/26 18:48:00
>>493
469と474て同一人物じゃないだろ?
同一人物だとしたら説が矛盾する。
497:493
05/06/26 18:50:14
>>495 そうか...スマン
Pimplは Exceptional C++ にありますです。
498:485
05/06/26 18:52:25
>>494
>対象物の構造が間違いないぐらいきっちりわかってからの話じゃない?
つまり貴方は、何時も見切り発進でやってると……言うような冗談は置いておいて
・分かっているならば構造に組み込むというのは FA
・分かった時点で構造に組み込むというのも FA
だれも 『判明していない構造』 を組み込めなんて言ってないですし
>継承やら多態性やらを考慮してクラスを組み変えるのは
っていうか、もしかしたらと思ったんだけど、
『コーティングの技巧として、構造とは異なる継承や多様性を組み込む』
とかやってませんか?
それはオブジェクト指向から微妙に外れるし、それを 「オブジェクト指向とは言わない」 と言うのはトートロジ
499:485
05/06/26 18:57:23
なんかデザパタじゃなくてオブジェクト指向の話になっているけど、
>>494
俺でも確かに、継承とかを使わないときは全く使わないんだけど、それでも時折閃くときがあるんだな
そういうときには使う
500:デフォルトの名無しさん
05/06/26 18:57:47
pimplって何?ときましたかw
これでコイツがC++で実務をこなした事は一度も無いって事が分かったな。
Java&J2EEに関する知識は皆無で、C++に関してはテンプレートに苦戦中
でpimplを知らないというレベル。なんとなく、どんな奴だか見えてきた。
501:490
05/06/26 18:57:51
>>494
聞きたいのは>>482だったんだが、
>>494を読む限り、君にとってis-aの関係のためのクラス導入は、
設計とはほぼ無関係であるとしてるね。
設計に無いクラスの導入を実装時にすることを確定事項とした設計であると理解して良いね?
502:デフォルトの名無しさん
05/06/26 18:59:17
教えて君の奇形だろ。
503:デフォルトの名無しさん
05/06/26 18:59:33
>>498
あ?なんか非常にわかりにくい文章で何言ってるのかわからない。
何がいいたかったの?
書いた本人的にも微妙でしょ?>>498の文章って。
504:485
05/06/26 19:00:42
>>503
微妙だけど?
505:デフォルトの名無しさん
05/06/26 19:05:51
横レス申し訳ないんだが。
「構造」って「データ構造+論理構造」だよね?
506:デフォルトの名無しさん
05/06/26 19:07:13
>>505
「オブジェクト構造」
507:485
05/06/26 19:17:51
まとめた
>>494
『コーティングの技巧として、想定していたオブジェクトの構造とは異なる継承や多様性を組み込む』 ことは、
たとえクラス等を使用していてもオブジェクト指向とは言えない (かもしれない)
508:デフォルトの名無しさん
05/06/26 19:20:24
>>507
何がききてぇんだ?w
もう、てめぇの中で結論は出てるのか?w
509:485
05/06/26 19:22:39
>>508
何も聞きたくありませんわ
510:デフォルトの名無しさん
05/06/26 19:33:05
is-aの関係なんて分析時に真っ先に判明するもんでしょ?普通は。
それを>>494では
> 継承やら多態性やらを考慮してクラスを組み変えるのは一度実装が
> ほぼ終わりに近づいてからしかやったこと無いな。
なんていっちゃってるし、これって設計せずにプログラミングしているのと何か違いがあるのか?
511:デフォルトの名無しさん
05/06/26 19:39:40
1.要求定義
2.分析
3.設計
4.実装
5.品質管理
それぞれのステージにおいてOOの意味や役割が異なる。という前提は確認しあってるの?
512:デフォルトの名無しさん
05/06/26 19:42:24
設計に落とす段階で挫折する人が多いようだけど。そういう人たちがデザパタに
頼っちゃうのかな?
513:デフォルトの名無しさん
05/06/26 19:59:29
とデザパタに挫折した人が言っております。
514:485
05/06/26 20:03:16
デザパタに挫折したからどうなるってもんでも無いような気がしますが
デザパタって、料理のレシピみたいな物なのかもね
レシピを見れば、腕が良ければそこそこの料理ができる
レシピをたくさん眺めていれば、新しい料理を作ってみることもできる
……レシピを見なくても、料理できる人は料理しちゃう
515:デフォルトの名無しさん
05/06/26 20:04:31
>>494は、先に継承・多態性を否定したデザパタ否定派が、
多態性を否定するとほとんどの既存のライブラリを使用できなくなることを指摘され、
それを無理に方向修正しようとして失敗した結果だろ?
516:デフォルトの名無しさん
05/06/26 20:05:56
>>513
そういうパターンの使い方が限界なんだろうな。ここまでくると頭蓋骨の容積の問題か?
517:デフォルトの名無しさん
05/06/26 20:07:32
>>516
?
512 への間違い?
518:デフォルトの名無しさん
05/06/26 20:11:49
>>515
×デザパタ否定派
○デザパタ否定君
519:デフォルトの名無しさん
05/06/26 20:14:07
>>517は天然?
520:517
05/06/26 20:20:29
>>519
>513 :デフォルトの名無しさん :2005/06/26(日) 19:59:29
> とデザパタに挫折した人が言っております。
>516 :デフォルトの名無しさん :2005/06/26(日) 20:05:56
> >>513
>そういうパターンの使い方が限界なんだろうな。ここまでくると頭蓋骨の容積の問題か?
ごめん。この2個のレスが全然繋がらないんだ
521:デフォルトの名無しさん
05/06/26 20:28:13
>>428があるから継承・多態性を否定しないと、
デザパタはオブジェクト思考に従っていないからダメ
というロジックが崩れてしまうし、
かといって継承・多態性を完全に否定してしまうと今度は、
ほとんど全部の既存のライブラリを使えないことになってしまうし・・・
と、考えたデザパタ否定君は>>494をカキコしたのでしょう。
522:デフォルトの名無しさん
05/06/26 20:28:47
>>520
だろうね。
523:デフォルトの名無しさん
05/06/26 20:32:48
>オブジェクト指向の重要な概念として(1)カプセル化(2)継承(3)多態性というのがあるよね。
まあ、最も重要な概念である「振る舞い」を外してる時点でアレだけどね。
524:デフォルトの名無しさん
05/06/26 20:33:51
>>523
「振る舞い」 というか 「インターフェイスの抽象化」 の方が
525:デフォルトの名無しさん
05/06/26 20:41:04
>>524
もう一息だね。
「インターフェイスの抽象化」を「振る舞い」 と呼びたくなった時にはじめて
自分がテイクオフしたことを実感できると思うよ。頑張って!
526:デフォルトの名無しさん
05/06/26 20:45:39
>>525
ああ、多分俺が考えているのと違うわ。
「対象物のインターフェイスを抽象化する」 = 「対象物の振る舞いを定義する」
527:デフォルトの名無しさん
05/06/26 20:47:15
>>526
うん。違うね。
528:デフォルトの名無しさん
05/06/26 20:50:02
単なる集約を抽象化などと小難しく表現するのは勘弁な。
529:デフォルトの名無しさん
05/06/26 20:54:56
悪い。「振る舞いの定義」 の 「の定義」 って部分がさらりと出てこなかった。
530:デフォルトの名無しさん
05/06/26 20:55:27
>>526
イタタタタ
531:25 ◆41ucRLNOBQ
05/06/26 20:56:28
俺は>>508あたりからレスしてないぞ。
532:デフォルトの名無しさん
05/06/26 20:57:56
>>531
それが何か?
533:デフォルトの名無しさん
05/06/26 20:58:37
>>531
何か?
534:デフォルトの名無しさん
05/06/26 21:14:39
ところで、今日考えてたんだけど、否定派の主張は
『デザパタはオブジェクト指向に従っていない、トリッキーなコードである』
ってコトらしいけど、俺は仮説として
『デザパタを適用してもオブジェクト指向に従っている例は存在するのではないか』
を考えた。否定派の主張を覆すならば、その様な具体例を示せれば良いと思う。
もし存在すれば、デザパタは反オブジェクト指向的コードを 強制する 物ではないと示せる筈だから。
んで、具体例を挙げるにあたって、
『実世界の物体において実現されている構造ならば、オブジェクト指向で考えられる。つまり、オブジェクト指向に従っている』
と考えた。
【続く】
535:デフォルトの名無しさん
05/06/26 21:14:51
【続き】
んで、試しに Strategy が適応されている、もしくは Strategy 的な構造になっている現実世界の実例を考えてみたら
・マザーボードと CPU の関係
・ゲームボーイとカートリッジの関係
とか、妙にたくさん出てきて困った。
これらの関係は、2つの接触部分を固定化して、片方を必要に応じて切り替えられるようになっている関係だ。
必要に応じて切り替えられる、って言うのはつまり切り替えなくても良い、って意味も含むけど。
んで、俺の仮説における具体例が示せたわけだが、果たして合っているだろうか……
======
あと、この例ならば、以前否定派の人が 「戦術をクラスとして抜き出すのはオブジェクト指向的ではない」
って言っていたことの、簡単な反証にもなると思う。
この主張は 「戦術≠オブジェクト」 ってコトを根拠にしているけど、
「抜き出す作業」 はつまり、「戦術を内包したオブジェクトを定義する」 ことに等しいから、そもそも問題になってない。
536:デフォルトの名無しさん
05/06/26 21:25:12
>>534-535
>>386がよくまとまってるから読んでからにしたほうがいいと思う。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5370日前に更新/288 KB
担当:undef