〔隔離〕デザインパタ ..
21:デフォルトの名無しさん
05/06/21 23:57:34
>俺が探してくんの?w
向こうで死ぬほど書いたんだろ?何言ってんの?
22:デフォルトの名無しさん
05/06/22 00:00:15
つか名無しの書き込みじゃどれ書いたのかなんて書いた本人しかわからないだろ
23:デフォルトの名無しさん
05/06/22 00:13:00
ここまでの流れ見てると、デザパタ否定派のが分が悪いな。
24:デフォルトの名無しさん
05/06/22 00:21:25
俺はてっきり
・オブジェクト指向で開発
・たくさんオブジェクト指向で開発
・なんか同じ様な設計パターンにならね?
・デザパタ誕生
かと思ってた
まぁオブジェクト指向しなくてもデザパタは適用できるんだけどさ
25:デフォルトの名無しさん
05/06/22 00:26:44
>>21
まあ、一番大事なのはこれ↓だな。
>OOPなんだけどもなにもアプローチが
>基本から脱線しまくってるじゃねーか。
>どんなに複雑だろうとなんだろうと、オブジェクト指向はオブジェクト指向だ。
>基本理念は
>
>現実にあるものの構造をそのままプログラムに反映することで
>誰がみてもその構造を把握できやすいようにすること
>
>だったはずだ。
>要はインベーダゲームを作るときの自機、敵、弾、このオブジェクトを
>そのままクラスという形でソースコードに反映することができること。これがオブジェクト指向でしょ。
>この基本は絶対に変わらない。
>プログラムに多少疎い人でも、インベーダゲームで自機、敵、弾に相当するクラスが
>無かったら真っ先に担当者を問い詰めることができる。
>これがオブジェクト指向の単純な利点だ。
掻い摘んでいうと、
対象物の構造をそのままクラスとして反映させるのがオブジェクト指向であって
パターンを覚えさせるデザインパターンはアプローチがおかしい
と、そういうこと。
26:デフォルトの名無しさん
05/06/22 00:32:32
デザインパターンはコミュニケーションの手段であって設計のテンプレートではないと思ってたんだが
27:デフォルトの名無しさん
05/06/22 00:36:08
> 対象物の構造をそのままクラスとして反映させるのがオブジェクト指向
おまえまじでいってんのかよw あんまプログラム組んだこと無いだろw
本当にそんな稚拙なOOPの定義で、1作品完全に組めるならやってみろw
素人がw
28:デフォルトの名無しさん
05/06/22 00:38:44
>>25
ゲームなどのクライアントアプリケーションやスタンドアロンアプリケーションならそれでも行けるよね。
DB連携のWebアプリはどうする?
DB検索と更新機能のデザインパターンを使わない設計の具体例を教えてくれ。
29:デフォルトの名無しさん
05/06/22 00:39:00
>基本理念は
>
>現実にあるものの構造をそのままプログラムに反映することで
>誰がみてもその構造を把握できやすいようにすること
>
>だったはずだ。
どこでこんなこと習ったんだ?
教えてもらった先生に文句言ったほうがいいぞ。
30:デフォルトの名無しさん
05/06/22 00:41:10
「オブジェクト指向で設計すればデザパタ不要」
もうこの一言で「デザインパターン」を知らないことは明白。
31:デフォルトの名無しさん
05/06/22 00:41:38
>>27
組めるよ。
なんでできないの?
32:デフォルトの名無しさん
05/06/22 00:41:46
>>26
同意
典型例に名前を付けただけだよな
33:デフォルトの名無しさん
05/06/22 00:41:47
「だったはずだ」ってまさか思い込みで書いてないよな?
34:デフォルトの名無しさん
05/06/22 00:42:39
LOL
35:デフォルトの名無しさん
05/06/22 00:44:11
>>28
web関連やったことないから知らんけど、
基本的に対象物の構造をそのままクラスに反映するわけだから
DBとやらの構造に根本的な欠陥が無い限り組めると思うよ。
それがオブジェクト指向の強みだからね。
逆にDBとやらが腐ってたら設計も腐るだろうね。
36:デフォルトの名無しさん
05/06/22 00:44:33
いいなぁ。専門学校生。生来勉強できないだけのことはあるw
講師もバカだしなw
超使えねぇ解雇された元同僚が某専門学校で講師やってるよw
37:デフォルトの名無しさん
05/06/22 00:47:28
>>35
もしかしたら、超天才かも。
そんなわけ無いか...
38:デフォルトの名無しさん
05/06/22 00:47:28
>>35
やったこともないのにできるなんてよく言えるな。
おめでたい奴だ。
39:デフォルトの名無しさん
05/06/22 00:53:58
GRASPパターンについてはどう考えてるのか聞きたい
40:デフォルトの名無しさん
05/06/22 00:54:06
>>38
いえる。
だから、マ板にいる奴等ってすげー偉そうじゃん。
それは自分が対象物の構造さえ理解できれば確実に
プログラムを組めるということが確信できているから。
で、オブジェクト指向覚えた奴同士で設計に関する議論ってみたことないでしょ?
そりゃする必要がないから。
なんたって確実。
あとは対象物の理解がどれだけできているかってただそれだけ。
人に聞いてわかるもんじゃないし、あとは自分がどれだけ勉強するかってだけ。
41:デフォルトの名無しさん
05/06/22 00:54:53
>>35はServletやJSPやJavaBeansをどうやって使うつもりなんだろう?
セッション管理やトランザクション管理の仕組みも自分で設計するのかな?
CommnadパターンもServiceLocatorも使わないから、ビジネスロジックの呼び出しもベタ書き?
プレゼンテーション層/ビジネスロジック層/EIS層を分けて考えることもしないんだよね?
DAOパターンやDTOパターンもSingltonも拒否?
拡張性もなく、リクエストの度に大量のオブジェクトを生成して恐ろしくパフォーマンスの低いシステムを作りそうだ。
42:デフォルトの名無しさん
05/06/22 00:56:38
本当にいいたいことは、やりたいようにプログラミングさせろってことなんだろ?
デザインパターンとかで縛りを受けたくないと...
オブジェクト指向云々は単なるこじつけでさ
43:本スレ住人
05/06/22 00:59:26
>>39
その本良書かもしれないけど、あんまポピュラーじゃないから、
ちゃんと説明する努力をしないと伝わらないよ。
俺なんて本スレで調査しまくり、翻訳しまくりだ、最近orz
44:デフォルトの名無しさん
05/06/22 00:59:26
デザパタは縛りでは無いが、名前がないパターンは伝達に不便なので
避けがちになるかもしれないから縛りに感じることもあるか。
それより伝達の欲求がないなら覚えるだけ面倒にしか感じないだろうな。
一人で設計してるだけならそう思うかも。
45:デフォルトの名無しさん
05/06/22 01:03:43
>>41
拡張性も糞も無い。
俺はただあるべき構造をただクラスに反映させるだけ。
そのために対象物の構造を理解する必要はあるけどね。
要は対象物の構造が破綻さえしてなきゃ大よそのもんは組めるってこと。
46:デフォルトの名無しさん
05/06/22 01:06:31
>>45
マジですか?
仕様の変更とかあったら組みなおすの大変じゃない?
47:本スレ住人
05/06/22 01:06:57
>>39
あと、こっちは隔離スレだから、
ちゃんとした話は本スレ
【GoF】デザインパターン5
スレリンク(tech板)
でやった方がいい。
ところで、こんな荒れてるスレでパターン・コレクション名だけこそっと書いて
そのまま無反応になるのは、なにかのオマジナイですか?
48:デフォルトの名無しさん
05/06/22 01:12:02
>>45
Webシステム開発は仕様変更が激しいからねー。
そんなんじゃ、手戻り多くてあっという間にあぼーん確定だね♪
49:デフォルトの名無しさん
05/06/22 01:22:29
>>25への反論
1.対象物の構造をそのまま、オブジェクト指向言語で完全に表現する事はできない。
不完全な表現の例:
多重継承、
時間的な状態変化、
計算不可能な対象物/概念、
非常に複雑な対象物/概念
etc.
もしあらゆる事柄を表現しシミュレーションする方法があるのなら、
科学者の仕事の大半はいらなくなる
2. オブジェクト指向に限らず、モデリングとシミュレーション、そして科学の肝は、
対象物をそのまま記述するのではなく、
特徴を捉えて扱いやすい簡易的な表現を得る事である。
要するに、抽象化こそが知性の最も重要な働きなのである。
抽象化を行わないオブジェクト指向プログラミングがあるとすれば、
それはせいぜいPC上のソフトウェアの「移植」とか「エミュレーション」程度の事に過ぎない。
3. このように対象物の構造と、ソフトウェア上の表現・・・ここではオブジェクト指向モデル/プログラム
との差異を何らかの形で縮め、実用上問題がないように取り繕う技術が、
モデリングであり、設計であり、プログラミングである。
これは普通にソフトウェアを弄っている人間にとって、常識である。
50:デフォルトの名無しさん
05/06/22 01:23:05
>>48
仕様変更による構造の変更を無理やり設計レベルで吸収しようとすると
だいたいドツボにハマる。
俺はいっそしっかり組み直してしまったほうがいいと考えるけど。(完全に変更の場合はね)
つか、そのまま残して置いちゃ駄目でしょ。
それに、あいまいな部分をあいまいに組んでおく手もないわけではないよ。
例えば、始め敵クラスの詳細が決まってないときは詳細が決まるまで
「敵」クラスとしてあいまいなままおいときゃいいわけだし。
んで、「敵」クラスの詳細が決まったら初めて「敵:スライム系」「敵:ゴブリン系」だの
その詳細を組みだしゃいいわけだしね。
2つの方法があってどっちか迷ってるときも同じ。あいまいなままどさっとおいておきゃいい。
汎用性をつけたいときも同じ、でもそれなりに大変ではあるよ。
逆にあんまり詳細に組み過ぎてもやっぱり駄目。RPGなんかでアイテム1つ1つにクラス作るわけにはいかないからねぇ。
ってこの辺は人によって方法は違うだろうし、どんな方法をとろうがその人の自由だな。
まあ、本質にかかわる話じゃ無い。
51:デフォルトの名無しさん
05/06/22 01:30:33
>>49
ちょっと小出しに話してよ。
レスつけずらいよ。
1ってなんで不可能なのかさっぱりわからないんだけど。
52:デフォルトの名無しさん
05/06/22 01:37:11
>>50
変更に対して強い設計を可能にするデザインパターンもあるんだがそれは無視?
まぁ・・・あれだ。
完璧な設計などまずありえないし、お尻がキッチリ決まってる仕事の場合は
設計にそれほど時間をかけられないし、深くは追求するつもりはないけど。
# 書いているうちに余計なおせっかいな気がしてきた
53:49 一部訂正。結局駄文だけど本質は突いているつもり
05/06/22 01:39:23
>>25への反論
1.対象物の構造をそのまま、オブジェクト指向言語で完全に表現する事はできない。
オブジェクト指向では不完全な表現しか得られない事象の例:
多重継承、
時間的な状態変化、
etc.
一般的に、不充分な表現しか得られない事象の例:
非常に複雑な対象物/概念
計算不可能な対象物/概念、
記述不可能な対象物/概念
etc.
もしあらゆる事柄を表現し自動的にシミュレーションできる方法があるならば、
大半の科学者は仕事をする必要がなくなる。
(例:宇宙誕生をオブジェクト指向言語でそのまま表現可能なら、宇宙論は不要になる)
2. オブジェクト指向に限らず、モデリングとシミュレーション、そして科学の肝は、
対象物をそのまま記述するのではなく、
特徴を捉えて、扱いやすい簡易的な表現を得て、その表現を操作する事である。
要するに、抽象化と記号的処理こそが、知性の最も重要な働きなのである。
抽象化を行わないオブジェクト指向プログラミングがあるとすれば、
それはせいぜいコンピュータ上のソフトウェアの「移植」とか「エミュレーション」程度の仕事に過ぎない。
3. このような、対象物の構造と、ソフトウェア上の表現(ここではオブジェクト指向モデル/プログラム)
の間にある差異を、何らかの形で縮めて、実用上問題がないように取り繕う技術が、
モデリング/設計/プログラミングの中心的な作業であり、
そのためのノウハウや経験則は、ソフトウェア・パターンとかプログラミング・スタイルとかイディオムと呼ばれている。
54:デフォルトの名無しさん
05/06/22 01:40:03
>>51
なんすか?
質問があるなら簡潔明瞭に済ませてね。
長々と議論する時間はもうないんで。
55:デフォルトの名無しさん
05/06/22 01:41:19
デザパタなんて息抜きって言うかお遊び
56:デフォルトの名無しさん
05/06/22 01:41:40
ダメだこりゃ。理想論でしかない。
この人はビジネスロジックとデータモデルの設計はできるが、それだけ。
プレゼンテーション層、EIS層の設計と実装はムリだね。
定石とかフレームワークという概念が皆無。
57:エリート研究開発すぁ
05/06/22 01:45:55
まぁ>>41あたりの大半は、
1996-1997当時にほぼ独力 (ただし関連文献や技術書、GoF、各種MLをROM捲り)
で作れたけどね。
58:デフォルトの名無しさん
05/06/22 01:46:59
Webアプリなんてこうやって組んでおけば誰にでもわかりやすいし
どんなアプリでもほぼこれでOKなのに、それでも毎回オレ様オリジナル設計するの?
無駄な努力にしか思えない。
URLリンク(java.sun.com)
59:エリート研究開発すぁ
05/06/22 01:48:00
つまりJavaやHORBが出た当初なら、
しがらみがほとんどないから、
フルスクラッチで大建築を作りやすかったんだけど、
もうあれから10年近く立ってるからなぁ。しがらみ過ぎてて最近始めた人は大変だなぁと思う
60:デフォルトの名無しさん
05/06/22 01:48:52
>>57
作れるかどうかじゃなくて、これらの手法をパターン化していつも使うかどうか。
オブジェクト指向厨はそうはしないで、毎回毎回アタマをひねるらしいよ。
61:エリート研究開発すぁ
05/06/22 01:52:57
いうまでもなく俺はGoF賛成派で、パターンは重要と考える口だが。
歴史的経緯を見てきた漏れの意見を言うと、
J2EE Blueprint / J2EE Patternってイマドキ神格化されすぎてると思う。
リアルタイムでは、IBM BestPracticeやNetscape, WebLogicの方が
よっぽど進んでいたと思うよ。
更にマズイのは、J2EE反主流派のOracleなんて、
J2EE Pattern織り込み済みでもう必要としないDB用フレームワークを使っている事。
そんな環境でも、木偶の坊みたいな人がJ2EE Patternを無理やり適用しようとする。
こういう奴を見ちゃうと、Pattern言語/Pattern推進派の努力にも限界があるのだと実感する。
62:デフォルトの名無しさん
05/06/22 01:54:20
>>58
つーか、webアプリ組んだことないから知らないけど
同じものなら使いまわせばいいでしょ?
どうしてパターン使ってまで組み直すの?
オブジェクト指向=毎回作り直す
とかかってに捻じ曲げて無い?
そんなことはいってないよ。
63:デフォルトの名無しさん
05/06/22 01:55:33
>>39 まだぁ〜(チン、チン☆
>>51 まだぁ〜(チン、チン☆
もう寝るよぉ?
64:デフォルトの名無しさん
05/06/22 01:57:49
>>62
貴方の主張は、設計を使いまわすのではなく、実装を使いまわすって話ね。
SI屋がやりそうな手口だ。
ところでここの住人は何時まで起きてるの?
明日も仕事だよね?
65:デフォルトの名無しさん
05/06/22 02:03:59
オマエモナーと脊髄反射レス
66:デフォルトの名無しさん
05/06/22 02:05:19
>>62
よく使われる組み方をカタログ化しておいて、使い回すのがデザインパターンなんだけど。
67:デフォルトの名無しさん
05/06/22 02:07:26
>>66
ん?毎回パターン使って組まなきゃならないものなのか?
って聞いてるんだけど?
要はソースレベルでの使いまわしは効かないの?
って話ね。
68:デフォルトの名無しさん
05/06/22 02:12:49
>>67
もちろんフレームワークやライブラリは最大限利用するよ。
69:デフォルトの名無しさん
05/06/22 02:14:43
>>68
いやいや、ソースレベルでの使い回しができるかできないかの話。
70:デフォルトの名無しさん
05/06/22 02:14:53
ほぼ陥落だね
71:デフォルトの名無しさん
05/06/22 02:22:34
フレームワーク・ライブラリを最大限に利用したら
使い回せるモノなんてほとんど無いんだけど。
各システム固有の要件に応じた処理とか画面と設定ファイルしか作らないので。
72:デフォルトの名無しさん
05/06/22 02:24:55
>>68
おまえジェネリックプログラミングとかテンプレートって知らないのか?
73:デフォルトの名無しさん
05/06/22 02:32:59
本当にGenericに、ソースコードで直接パターンそのものを表現できるのなら
そっちのが望ましいのは確かだよな。Modern C++ Designの例のように。
ただし、デザパタ自体の存在価値がそれで無くなるわけではない。
あれは、プログラマ間の共通言語、意思疎通の道具としての存在価値が
もっとも大きいのだと思う。
パターン化されたデザインは、for (i = 0; i < 10; ++i);
のようなパターン化されたループのように、認識・理解しやすいし。
74:デフォルトの名無しさん
05/06/22 02:35:44
>>73
あいやー。
再利用なんて無理にしないほうがいいと思うぞ。
できたらラッキーぐらいにしとけ。
75:デフォルトの名無しさん
05/06/22 02:40:47
>>74
おまえ、STL(スタンダード・テンプレート・ライブラリ)って知らないのか?
76:デフォルトの名無しさん
05/06/22 02:43:15
> 本当にGenericに、ソースコードで直接パターンそのものを表現できるのなら
>そっちのが望ましいのは確かだよな。
ん?できるじゃん。なんでできないと思っているの?
77:デフォルトの名無しさん
05/06/22 02:44:31
ひょっとしてJavaってC++のtemplateのような機能は無いのか?
78:デフォルトの名無しさん
05/06/22 02:51:35
>>77
近いのはあるがあれはコレクションを使いやすくする程度の使い道しかない
79:デフォルトの名無しさん
05/06/22 02:51:40
>>16
君らは概念がごちゃごちゃになってる。
多重継承を使うなよ。ってのもデザインパターンの一種なんだよね。
べからず集なので、アンチパターンとも呼ぶが。
でだ、デザインパターンって本を読むと、全体にトリッキーだったり、
(そうなってしまう前に設計で回避しろよーてな場合が多い)
Tipsレベルが多いんだ、の割には宣伝文句が大げさだから、
喧嘩になってる。さらに日本では訳や書籍が訳分からん言葉を
積極的に使うから更に悲惨な事態になってる。
「デザインパターン」と言う概念は否定しようも無い、だって既に
この世の中に有る物に名前を付けただけなんだから。
で、デザインパターンを批判してる者の言い分を聞くと、提出
されたパターンが汚いって話で、これはその通りだと思うし、
デザインパターンに、(デザイン)なんて言葉付いてるのが
日本人感覚だと惑わされるんだよね。
今のデザインパターンってのは、どう読んでもレスキューパターン
と言う名前の方がふさわしい。
80:デフォルトの名無しさん
05/06/22 03:06:05
>>79
そんな上等なレベルじゃないよ。知りもしないくせに「パターン」で反応しているだけ。
標準ライブラリは当たり前に使っている癖に、なぜかメタレベルのライブラリだと拒否反応を起こす。
81:デフォルトの名無しさん
05/06/22 03:08:28
デザインパターンはライブラリじゃないだろ
82:デフォルトの名無しさん
05/06/22 03:08:48
言語依存の話しをするなよー
83:デフォルトの名無しさん
05/06/22 03:09:25
>>81
"メタ"ライブラリと言えるだろ
84:デフォルトの名無しさん
05/06/22 04:06:02
最初から「デザインTips」とでもしとけば誤解する奴が減ったのになぁ・・・
85:デフォルトの名無しさん
05/06/22 09:47:37
>>79
>「デザインパターン」と言う概念は否定しようも無い、だって既に
>この世の中に有る物に名前を付けただけなんだから。
この世の中にあるもの。
であるはずなのに、なぜ名前をつけてはいけないのですか?
ドラえもんという存在がいて、名前がなかったらなんて呼べばいいのか。助けてドラえも〜ん。
86:デフォルトの名無しさん
05/06/22 11:26:50
>>84
日本人の英語力のなさまで面倒みきれない
87:デフォルトの名無しさん
05/06/22 14:31:37
>>85 の日本語力のなさは誰が面倒みてくれるんでしょう?
88:デフォルトの名無しさん
05/06/22 14:36:45
>>67
>要はソースレベルでの使いまわし
なんだ、プログラミングパターンは使ってるじゃん。
それの抽象度を上げたのがデザインパターン。
使いまわすときに、多少変更して使った事ないか?
89:デフォルトの名無しさん
05/06/22 15:49:13
デザインパターンはゴミ。
デザインパターンなんてものは、口出しできないけど口出したいって思ってる
バカがひたすら持ち上げてるだけ。
90:デフォルトの名無しさん
05/06/22 16:07:46
>>89
てかゴミパターンも有るってことで。
SINGLETONパターンなんか、本当にゴミだと思うし。
91:デフォルトの名無しさん
05/06/22 16:09:30
>>90
クライアントやスタンドアロンしかやったことない奴はそう思うのだろう。
サーバサイドでは普通に使うけどね。
92:デフォルトの名無しさん
05/06/22 16:13:54
>>91
SINGLETONは普通に使うよ。GoF本の言うSINGLETONパターンを
ゴミと言ってるだけ。
93:デフォルトの名無しさん
05/06/22 16:25:38
>>92
それには同意。俺はDIコンテナにSingletonインスタンスの管理をさせてるから
ああいうコーディングはしない。
94:デフォルトの名無しさん
05/06/22 16:34:47
>>93
だよねー。
あのコーディングのどこにメリットが有るのか小一時間といつめたくなる。
95:デフォルトの名無しさん
05/06/22 16:49:56
ぜんぶstaticにしちゃえば嫌でもシングルトンだしね
96:デフォルトの名無しさん
05/06/22 17:00:10
>>95
うんだ。てか、SINGLETONパターンには、初期化されてないインスタンスを
呼ぶ危険性まであって、アンチパターンの方が似合てると思うんだ。
97:デフォルトの名無しさん
05/06/22 17:01:06
>>96 それはない
98:デフォルトの名無しさん
05/06/22 17:05:01
>>96
それはバグだろ
99:デフォルトの名無しさん
05/06/22 17:11:27
いくつかのスレッドが同時に初回staticのインスタンスを呼ぶ場合、
ゴミデータになるらしい。あとSMP環境だともっとややこしい事になるそうな。
100:デフォルトの名無しさん
05/06/22 17:13:04
>>99
それってC++の話?
101:デフォルトの名無しさん
05/06/22 17:14:20
そうC++、Javaは知らん。
102:デフォルトの名無しさん
05/06/22 17:16:55
スレッドの排他制御もわからんのか・・・
103:デフォルトの名無しさん
05/06/22 17:19:22
Javaでそれが起こったらJVMのバグとしかいいようがないな。
104:デフォルトの名無しさん
05/06/22 18:22:05
シングルトンがガベコレ対象になる恐れがうんぬんって
記事を見た記憶がありんす。
105:デフォルトの名無しさん
05/06/22 18:46:44
>>99
GoF では環境に依存しないよう、あえて実装してないが
MT safe にするためには当然、排他制御しなきゃならん。
んなこたあパターンに限った話じゃない。
106:デフォルトの名無しさん
05/06/22 18:47:31
>>97-98
きっと何処かで初期化されてるオブジェクトを、2度目の
生成するリスクをさけるにしては、リスクの方が大きい
と思うんだね。
デザインパターンてな考えかたは、認めるし、効果あると
思うけど、GoFにカタログ作らせるのは、不味いと思うよ。
全体にトリッキーなんだよ、奴らのカタログは。
107:デフォルトの名無しさん
05/06/22 18:52:01
出たトリッキーw
どのへんがトリッキーなのか具体的に解説きぼんぬ
108:デフォルトの名無しさん
05/06/22 18:59:33
>>107
隔離スレなんだから、反証責任はデザパタのカタログを信じてる馬鹿の
方に有る.
109:デフォルトの名無しさん
05/06/22 19:00:24
トリッキー、トリッキー、GoF時代のthreadは、トリッキー、トリッキー、GoF時代のOOPアプリはね、
教えてあげないよっ、じゃん♪
110:デフォルトの名無しさん
05/06/22 19:21:52
>>108(笑)
111:デフォルトの名無しさん
05/06/22 19:33:04
>>105は >>96のいう危ないインスタンスの例をあげただけだが、
ModernC++Designにある安全で速いダブルロックチェックドなシングルトンさえも
いまは安全でなく、ReadMemoryBarrier()とWriteMemoryBarrier()を
つかってない時勢にそぐわないものになってるというおはなし。
112:デフォルトの名無しさん
05/06/22 19:36:18
その手の(ハードウェア・)アーキテクチャ依存な話は、
アレつかって切り離すというのが、ここ2〜3年の潮流
113:デフォルトの名無しさん
05/06/22 19:58:56
どこがトリッキーなのか言わずにトリッキーだと言って信用されるとでも思ってるんだろうかw
114:デフォルトの名無しさん
05/06/22 20:06:07
トリッキーという発言自体がトリッキー
115:デフォルトの名無しさん
05/06/22 20:14:54
>>114
寧ろ発言者の存在自体がトリッキー
116:デフォルトの名無しさん
05/06/22 20:38:45
このスレの存在がトリッキー
117:デフォルトの名無しさん
05/06/22 20:59:45 BE:140478454-
お前らトリッキーって言いたいだけちゃうかと。
118:デフォルトの名無しさん
05/06/22 21:05:00
そうだ
119:デフォルトの名無しさん
05/06/22 21:11:00
お前らがトリッキーとか言ってる間に俺は既にトレッキー。
まぁ、お前らはゆっくりトロッキー辺りを目指せってことだな。
120:デフォルトの名無しさん
05/06/22 21:11:08
じゃあエキセントリック
121:デフォルトの名無しさん
05/06/22 21:28:48
結局アンチに正確な反証挙げられる奴はいなかったわけか
122:デフォルトの名無しさん
05/06/22 21:37:08
>>121
>>25の方法って普通のオブジェクト指向でしょ
デザパタ使ってる人ってこれのどの課程でデザパタを使うの?
123:デフォルトの名無しさん
05/06/22 21:39:05
一応これも貼っとこう
>>25への反論
1.対象物の構造をそのまま、オブジェクト指向言語で完全に表現する事はできない。
オブジェクト指向では不完全な表現しか得られない事象の例:
多重継承、
時間的な状態変化、
etc.
一般的に、不充分な表現しか得られない事象の例:
非常に複雑な対象物/概念
計算不可能な対象物/概念、
記述不可能な対象物/概念
etc.
もしあらゆる事柄を表現し自動的にシミュレーションできる方法があるならば、
大半の科学者は仕事をする必要がなくなる。
(例:宇宙誕生をオブジェクト指向言語でそのまま表現可能なら、宇宙論は不要になる)
2. オブジェクト指向に限らず、モデリングとシミュレーション、そして科学の肝は、
対象物をそのまま記述するのではなく、
特徴を捉えて、扱いやすい簡易的な表現を得て、その表現を操作する事である。
要するに、抽象化と記号的処理こそが、知性の最も重要な働きなのである。
抽象化を行わないオブジェクト指向プログラミングがあるとすれば、
それはせいぜいコンピュータ上のソフトウェアの「移植」とか「エミュレーション」程度の仕事に過ぎない。
3. このような、対象物の構造と、ソフトウェア上の表現(ここではオブジェクト指向モデル/プログラム)
の間にある差異を、何らかの形で縮めて、実用上問題がないように取り繕う技術が、
モデリング/設計/プログラミングの中心的な作業であり、
そのためのノウハウや経験則は、ソフトウェア・パターンとかプログラミング・スタイルとかイディオムと呼ばれている。
124:デフォルトの名無しさん
05/06/22 21:47:36
>>122
「対象物の構造を〜」ってことを 25 は言っているけど、その切り出し方は無数にある
(例えばオセロで審判を導入するとかしないとか。審判を導入すると双方の不正を一元監視できたり)
んで、その切り出し方の一例としてデザパタを応用するというふうに俺は使っている
(デザパタは直接使用せず、応用として。改変なしでは絶対に組み込めないし、組み込みたくない)
125:デフォルトの名無しさん
05/06/22 21:48:36
>>123
それはネタでしょ。
126:124
05/06/22 21:49:18
ちなみに、改変しても組み込めそうになかったら、その時点であきらめてますのであしからず
127:デフォルトの名無しさん
05/06/22 21:49:43
こんな下の方でチマチマやらずに、
上の方でどうぞ
128:デフォルトの名無しさん
05/06/22 21:50:32
>>125の存在が冗談
129:デフォルトの名無しさん
05/06/22 21:50:38
>>124
具体的にどうやって使うの?
パターンに当てはめる方法でいいの?
130:124
05/06/22 21:55:55
>>129
当てはめはしない
俺が考えた構造と、デザパタで提示されている構造が一致したら 「お?このまま行っても平気か?」 って思ってる
ついでに、提示された構造を参考に、幾らか修正を入れる
要は、どんな下らない物でも良いから、自分の考えを支持してくれる物があれば良いんだな俺の場合
131:デフォルトの名無しさん
05/06/22 21:59:02 BE:379290896-
>>130
デザインパターンの本来の目的からは外れてる気がするが(゚ε゚)キニシナイ
132:デフォルトの名無しさん
05/06/22 22:08:06
>>124
何処に石を置けるのか知らなければ、審判はジャッジできない。
何処に石を置けるのか知らなければ、CPプレーヤーは戦略を立てられない。
石を置くとボードがどう変化するのかを知らなければ、審判はジャッジできない。
石を置くとボードがどう変化するのかを知らなければ、CPプレーヤーは戦略を立てられない。
さて、どうしましょう?と、>>124に話を振るのは筋違いだな。
さて、どうしましょう?
対象物の構造をそのままクラスとして反映させるのがオブジェクト指向と主張してた貴方!
上記の主張を前提に、クラス設計してみてちょいよ。
133:124
05/06/22 22:18:31
>>132
いや、だから、対象物の切り出し方は無数にあるって例を出しただけで……
(審判は思いつき。妥当かどうかは考えてない。ちなみに、俺は大抵ボードが制約を持つように組んでる)
答えは無数にある。どれも正解かもしれないし、どれも不正解かもしれない。
134:デフォルトの名無しさん
05/06/22 22:18:42
>>130
どうせ修正するなら、当てはめたほうが早いのではないでしょうか?
135:124
05/06/22 22:22:23
>>134
正直速くない。部分的に一致させる事もあるけど、
サンプルで提示されている構造の使用価値はサンプルで提示されている程度のレベルでしかないと思っているし
ガチガチに当てはめると融通が利かない。妥協が必要
136:デフォルトの名無しさん
05/06/22 22:24:58
デザインパターンは
「ほら、あの処理あるじゃん。インスタンスをいっこに限定する方法」
「あぁ、以前のシステムでも使っていたあれですね。あの方法で組めばいいんですね」
というまどろっこしい会話を
「それsingletonね」
「はい」
というシンプルな会話にするためにあるのよ
137:デフォルトの名無しさん
05/06/22 22:28:07
>>136
「ほら、あの処理あるじゃん。インスタンスをいっこに限定する方法」
「あぁ、以前のシステムでも使っていた Singleton ですね。あの方法で組めばいいんですね」
138:デフォルトの名無しさん
05/06/22 22:41:43
>>136
1人のときは、全く役に立たないのでしょうか?
139:デフォルトの名無しさん
05/06/22 22:57:29
>>136-137
かつて2ちゃんの粘着くんの議論を終結させるために、
そーゆー一見もっともそうな説明をした事がある。
で、同じ話を何回書き込んだら気が済むの?
140:デフォルトの名無しさん
05/06/22 23:00:09
アンチが何か具体的な事を書くまでマターリ待とう。
オブジェクト指向だの設計だのって、結局は具体的な事が言えない
から逃げる為の口上に使ってるだけじゃん。
141:デフォルトの名無しさん
05/06/22 23:09:37
>>140
この人のあいかわらずソースを求める姿勢はどうにかならないものだろうかw
142:デフォルトの名無しさん
05/06/22 23:09:55
ウンコだかウンチだか知らないが、
煽り好きの>>140みたいなのは、リアルには付き合いたくない。
143:デフォルトの名無しさん
05/06/22 23:12:27
>>141もウンコ
144:デフォルトの名無しさん
05/06/22 23:13:58
この人がどの人か知らないが、俺はソースなんて求めてない。
具体的な何かでいい。とりあえず、上で出てるクラス設計なんてどう?
てか、言い訳多すぎ。
145:デフォルトの名無しさん
05/06/22 23:33:13
クラス図出せよ。
146:デフォルトの名無しさん
05/06/22 23:36:38
>>132
俺はこの件に関して傍観者だが、
>>132の問題設定が問題の体を為していないのと、
せっかく>>123に挙げた矛盾点を取り込んでいないあたりに、
そこはかとなく素人臭さを感じた
147:デフォルトの名無しさん
05/06/22 23:38:51
>>146
俺もこの件に関して傍観者だが、
具体性がないところにいつものアンチ臭さを感じた
148:デフォルトの名無しさん
05/06/22 23:55:48
>>144-145は、問題設定を明確にした上で、課題を出した方がいい。
このままだとアンチの自作自演と疑われて縞馬
149:デフォルトの名無しさん
05/06/23 00:01:13
では、僭越ながらオレ様が課題をだしますよ。
Q1.オセロを構成するのに必要なクラスを列挙せよ。
Q2.Q1で列挙した各クラスの役割について簡素に説明せよ。
Q3.Q1で列挙した各クラス間の関係(接続)について簡素に説明せよ。
150:デフォルトの名無しさん
05/06/23 00:04:29
>>136-137
>>111が例示してくれたように、デザインパターンのGoFカタログは
致命的なんだよ。
「SINGLETONパターンで、」と会話が成立してる*つもり*になって
いて、片方は、スレッーフなカスタマイズSINGLETONを話し、
片方は、GoFベースのSINGLETONで話てたらOUTなんだから。
GoFのカタログを、バイブルのように使うのは、危険なんだよ。
使い方としては、アルゴリズム集みたいなイメージで使うべき
なんだよ。
151:いつものアンチ
05/06/23 00:06:37
>>146
>>123は何がいいたいのかわからない。
>1.対象物の構造をそのまま、オブジェクト指向言語で完全に表現する事はできない。
の理由が
>オブジェクト指向では不完全な表現しか得られない事象の例:
> 〜略〜
> (例:宇宙誕生をオブジェクト指向言語でそのまま表現可能なら、宇宙論は不要になる)
なんだろうけど。
これは一体何がいいたいのかわからない。
とりあえず、手当たり次第レスつけると。
>オブジェクト指向では不完全な表現しか得られない事象の例
って書いてあるけど。
なんでここで「多重継承」なの?(このへんでもう相手にしなくていいかなーって思った)
多重継承を表現するって聞いた事ないんだけど。説明キボン。
んで次に書いてあるのが「時間的な状態変化」だけど。
なにこれ?意味がわからない。何がいいたいの?説明キボン。
で
>一般的に、不充分な表現しか得られない事象の例:
って書いてあるけど。
>非常に複雑な対象物/概念
どこまで複雑なのかは知らんけど根気よくやればできるんじゃない?
これはオブジェクト指向に限って表現できないものなのかなー。
>計算不可能な対象物/概念、
>記述不可能な対象物/概念
って書いてあるけど意味不明説明キボン。
ここでは1だけをとりあげたけど2と3なんて宇宙人の文でも読んでるのかと思った。ので意味不明。レス不能。
152:デフォルトの名無しさん
05/06/23 00:08:16
>>150
共有メモリアクセスの排他制御が必要だっつう
ハードウェア・アーキテクチャ依存の御託はもう判ってるから、
さっさと>>149に応えたらどうかね
153:デフォルトの名無しさん
05/06/23 00:09:15
>>151
キミの頭が未開拓なのはよく判ったから、
さっさと>>149に応えたらどうかね
154:デフォルトの名無しさん
05/06/23 00:12:35
>>153
やだよ。
だってそいつなんだかんだいってソースコードくれくれいってるのみえみえじゃん。
関わるとソース出さないとわめきたてるからレスつけない方がいいよ。
オブジェクト指向での設計からソースまでもってけないだけだろそいつは。
単純にクンフーが足りないw
155:デフォルトの名無しさん
05/06/23 00:13:39
クラス図出せ
156:デフォルトの名無しさん
05/06/23 00:16:37
ソースなんかいらないから、言語依存しないクラス図を出せよ。
157:デフォルトの名無しさん
05/06/23 00:31:25
また逃げたw
158:デフォルトの名無しさん
05/06/23 00:37:08
>>157
自作自演はバレてるから、さっさと>>149のクラス図出せ
159:デフォルトの名無しさん
05/06/23 00:38:42
あと、シーケンス図もな。
160:デフォルトの名無しさん
05/06/23 00:40:41
>>159
自作自演はバレてるから、さっさと>>149のクラス図出せ
161:デフォルトの名無しさん
05/06/23 01:02:42
だからクレクレ厨を相手にしちゃ駄目だって。
何、あげたって結局理解できるわけないんだから。
162:アンチじゃない人
05/06/23 01:04:00
ってか正直、>>123は俺でもわかりません。
1番を読み終えた時点で睡魔に襲われますた。
163:デフォルトの名無しさん
05/06/23 01:30:50
>>161-162
バレバレの自演はいいから早く出せよ
164:デフォルトの名無しさん
05/06/23 01:40:37
>>163
なんのために?
165:デフォルトの名無しさん
05/06/23 02:00:08
誤ったデザパタ推進派が、荒らしに来てる。
いやだ、いやだ。
166:デフォルトの名無しさん
05/06/23 02:04:36
いやあさすが隔離スレらしい展開だな(w
荒らしも糞も無いだろ
隔離スレにマトモな議論期待するなって
167:デフォルトの名無しさん
05/06/23 08:36:26
アンチの特徴:具体例を求めるとキレる
「デザパタってトリッキーだよな」
「どのへんが?」
「ムキー!!!あ;dlふぃうえあ;kじゃ;」
「オブジェクト指向がわかってればデザパタなんか設計に使わない」
「じゃあ○○をデザパタ使わずにどう設計する?」
「ぎえいぎえが;おい」
168:デフォルトの名無しさん
05/06/23 10:11:02
>>164-165
本当に言い訳がましいなw
169:デフォルトの名無しさん
05/06/23 12:32:12
お前ら空っぽの引き出しを何時まで弄ってるつもりだ?
もう完全スルーでいいだろ?
それはそれとして、このスレを何か有効に使う手はないものか?
170:デフォルトの名無しさん
05/06/23 13:13:42
っていうかここはもともとカラッポの引き出しを弄るスレですから
171:162(通りすがり)
05/06/23 14:24:13
>>163
自作自演じゃねーし。
>>123はごめん。素で意味不明。もっと文章力を付けてください。
で。オセロのクラス図?ごめwwwwダリwwwww
172:デフォルトの名無しさん
05/06/23 16:08:16
デザインパターンを貶しておきながら具体的な話からとことん逃げ続けるアンチでありました
173:デフォルトの名無しさん
05/06/23 19:19:58
>>169
【デザパタ嵌り道】こんな失敗しますたスレヽ(`Д´)ノウワァァン【失敗談】
というのはどうか?
174:デフォルトの名無しさん
05/06/23 21:05:03
まぁ大体理解できてないか適用するパターンを間違えた例がでて終わりだろ
175:16
05/06/23 21:50:37
相変わらずちょっと空けるとずいぶん流れてるなー。このスレ。
あらかじめ断わっとくと、間違ってもソースコードはいらないから。
じゃあインベーダーの話をしよう。
>>25
>要はインベーダゲームを作るときの自機、敵、弾、このオブジェクトを
>そのままクラスという形でソースコードに反映することができること。これがオブジェクト指向でしょ。
>この基本は絶対に変わらない。
>プログラムに多少疎い人でも、インベーダゲームで自機、敵、弾に相当するクラスが
>無かったら真っ先に担当者を問い詰めることができる。
>これがオブジェクト指向の単純な利点だ。
でさ、まず自機、敵、弾のオブジェクト(クラス)を作るじゃん。
1)自機に弾が当たったかどうかっていう判断をする処理をどっかに書くでしょ。どういう風に設計するの?
2)同じように敵が弾に当たったかどうかっていう判断をする処理をどっかに書くでしょ。どういう風に設計するの?
でさ、1と2って同じ処理だよね。やってることは。
どういう風に設計・実装するのか知りたいわけですよ。俺は。
俺がやるならどうやってもデザインパターンを使わずには作れないから。
っていうより、俺の能力じゃあ、どう書いても、誰かがこれはデザインパターンでいうなんとかパターンっていうものですよ。って言うだろう。俺がそのパターン名を知らなかったとしてもさ。
176:デフォルトの名無しさん
05/06/23 21:55:29
抽象クラス「キャラ」から「自機」と「敵」を継承させて
HitTest()は「キャラ」に実装するのが普通でしょう。
そのレベルではデザパタは別に関係ないし、例として適切じゃない気がするが。
177:デフォルトの名無しさん
05/06/23 22:10:50
つうかなんでいつも例がゲームなんだよ
中学生かよ
178:デフォルトの名無しさん
05/06/23 22:12:38
懐かしの「オブジェクト指向は戦場では必要無し」スレの
香りのするスレはここですか?
179:デフォルトの名無しさん
05/06/23 22:13:56
しかもまた「オセロ」でも書いて説明しるって言ってるし。
オマイたちは本当に進歩しませんね。
180:デフォルトの名無しさん
05/06/23 22:29:20
>>176
で、弾もあるよね。自分も敵も弾もそれぞれ座標(現在地)持ってるよね。
自分オブジェクトは1個かもしれないけど敵とか弾はたくさんオブジェクトがあるよね。
やっぱりループで回すよね。
ここまででデザパタは1つも出てこないのか?
>>177
じゃあ代わりに適切な例を上げて。
181:デフォルトの名無しさん
05/06/23 22:32:32
ゲームならオブジェクト指向でほぼOKでしょ。
俺が知りたいのはJ2EEアプリをJ2EEパターンを使わないで
アンチの主張する「オブジェクト指向設計」のみでどうやるのかに興味がある。
どんなに素晴らしいモノなのか、教えてもらいたいものだよ。
本当にできるならねw
182:デフォルトの名無しさん
05/06/23 22:41:18
>>180
「弾」も「キャラ」から派生させれば問題なかろ。
もう少し条件つけんとCompositeだのFlyweightだのは出てこんぞ。
183:デフォルトの名無しさん
05/06/23 22:43:44
そういえば彼はJ2EEの話に対して1回「出来る」ってレス返しただけであとは完全スルーだったな
184:デフォルトの名無しさん
05/06/23 22:48:02
仕事した事ないんだろ
185:デフォルトの名無しさん
05/06/23 22:50:33
J2EEアプリであるための条件って何なんだ?
helloworld.jsp
だけでいいんなら、別にパターンいらないぞ
186:デフォルトの名無しさん
05/06/23 23:14:01
>>181
前提が間違ってる。
崇高なオブジェクト指向を信奉する彼は邪悪なJ2EEなんて使わない。
彼なら最初にAPサーバを書くところから始めるに違いないw
187:デフォルトの名無しさん
05/06/23 23:41:58
>>186
だよな。「Servlet」というフレームワークや実装パターンのカタマリみたいな
プラットフォームは拒否るだろうからね。
188:デフォルトの名無しさん
05/06/24 00:25:49
今のところ肯定派の圧勝か。。
189:デフォルトの名無しさん
05/06/24 00:39:14
アンチは理想論ばかり振りかざして具体例をまったく出せていないからね。
190:いつものアンチ
05/06/24 01:03:27
奇跡だ!
まともな質問が!
>>175
>1)自機に弾が当たったかどうかっていう判断をする処理をどっかに書くでしょ。どういう風に設計するの?
>2)同じように敵が弾に当たったかどうかっていう判断をする処理をどっかに書くでしょ。どういう風に設計するの?
>
>でさ、1と2って同じ処理だよね。やってることは。
>どういう風に設計・実装するのか知りたいわけですよ。俺は。
これはオブジェクト指向で設計をしていれば、
オブジェクトの抽出のときに自機と敵が存在するフィールド(シーンのがいい?)のようなものができると思うから
そこに処理をかけばいいと思うよ。(なければフィールドクラスを作る。)
そのフィールドでの出来事だしね。
191:デフォルトの名無しさん
05/06/24 02:03:47
>>190
その"フィールド"をメディエイターとしてするのかな?
あと、敵キャラの動きとかはストラテジーパターンで表現できそうだ。
あと「スコアカウンタ」から「敵オブジェクト」を
オブザーバーパターンを使って監視しておけば
得点の加算ができそうだね。
192:デフォルトの名無しさん
05/06/24 04:04:33
お前らシングルトンも知らないのw
死ねば?
193:デフォルトの名無しさん
05/06/24 07:07:21
>>191
>あと「スコアカウンタ」から「敵オブジェクト」を
>オブザーバーパターンを使って監視しておけば
>得点の加算ができそうだね。
ん?これは何をやってるの?
もし、クラスのインスタンスの数を数えてシステムに反映させているなら
設計が悪いと思う。
194:デフォルトの名無しさん
05/06/24 10:28:59
>>191
アンチの人にパターン名で解説しても話が通じんだろ。
>>193
「スコアカウンタ」のインスタンスが一つあって、
敵オブジェクト一つ一つにその「スコアカウンタ」のインスタンスを持たせておいて、
敵オブジェクト自身が死んだときに「スコアカウンタ」に点数を報告するって方法では?
設計悪いかな?漏れはまあいいんじゃないかなと思うけど。
195:デフォルトの名無しさん
05/06/24 10:46:38
課題のインベーダー程度ならともかく
複数人同時プレーやもうすこし複雑なスコアシステムや設定によるスコアシステム自体の切り替えなどを考えると
シングルトンのスコアシステムに必要そうな情報全てを付加したスコア発生メッセージを通知するのがベター
嫌な設計だが
196:デフォルトの名無しさん
05/06/24 10:49:06
細かいところは分からないけど、全体的にMVCっぽくなりそうな...
197:194
05/06/24 11:30:53
>>195
複雑なスコアシステムだったとしても、
オブザーバに報告する内容をすこし増やせばいいんでない?
シングルトンだと、設定によるスコアシステム自体の切り替えはきつそうな希ガス。
198:デフォルトの名無しさん
05/06/24 21:25:27
>>194
>敵オブジェクト自身が死んだときに
ゲームだとこの死んだときってのが微妙でね。
オブジェクト自身が本当に消滅したときなのか、
敵が死体で転がってる状態なのか、ってのは微妙でしょ。
だから、ゲームの仕様でインスタンスだのオブジェクトだのが出てくる人間の
プログラムはちょっと気を付けてみることにしてるw
もし、部下がインスタンスの消滅を見てゲームを動かしてるのを発見したら
俺の環境だと即組み直しw
まあ、将来の為。
あ、これはデザパタとかオブジェクト指向とか関係無いから。
199:デフォルトの名無しさん
05/06/24 22:33:12
> 部下がインスタンスの消滅を見てゲームを動かしてるのを発見したら
意味不明。
200:デフォルトの名無しさん
05/06/24 22:58:38
>>199
そのままの意味だけど?
これ以上詳しくはできない。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5370日前に更新/288 KB
担当:undef