〔隔離〕デザインパターンは本当に必要か?〔スレ〕at TECH
〔隔離〕デザインパターンは本当に必要か?〔スレ〕 - 暇つぶし2ch175: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
そのままの意味だけど?
これ以上詳しくはできない。

201:デフォルトの名無しさん
05/06/24 23:05:28
単に死体になってるだけ=ただの状態変化
実際にゲームから消滅した=オブジェクトの消滅

として設計され、管理されているなら
> インスタンスの消滅を見てゲームを動かし
ていても問題ないのでは?


202:デフォルトの名無しさん
05/06/24 23:06:02
SE にとって重要な能力の一つは 自分の考えを簡潔かつ適切に他人に伝える だと思う

203:デフォルトの名無しさん
05/06/24 23:07:08
>>202
違うな。
どんな人間にも平気で嘘がつける度胸だ。

204:デフォルトの名無しさん
05/06/24 23:08:52
>>201
それが駄目なことについて延々と語るつもりは無いな。
いいと思うなら自由にやってくれ。

205:デフォルトの名無しさん
05/06/24 23:09:46
平気で嘘がつける = 適切に

206:デフォルトの名無しさん
05/06/24 23:10:32
SEなんて日本だけの腐れ職業のことなんざどうでもいいよ

207:デフォルトの名無しさん
05/06/24 23:11:14
またゲームかよおまえら
ゲームつくるのにデザパタはたいしていらんぞ

208:デフォルトの名無しさん
05/06/24 23:12:22 BE:393339078-
平気で嘘をつけない奴のほうが稀な気が。

209:デフォルトの名無しさん
05/06/24 23:13:26
そうだな日本は偽装派遣天国だしな

まあ面接でちゃんと問い詰めればすぐバレるけどな
問い詰めちゃいかんらしい

210:デフォルトの名無しさん
05/06/24 23:14:51
>>201
ポインタ使いまわしてて、消滅したはずのオブジェクトが復活する(したように見える)バグがでるに一票。
危険な道は避ける。
これがわからない人間にゲームプログラマは難しい。

211:デフォルトの名無しさん
05/06/24 23:17:34
>>210
それはメモリ管理が出来ていないと言っているに等しいと思うんだが....

212:デフォルトの名無しさん
05/06/24 23:22:40
>>211
メモリの管理はできてるでしょ。
メモリは破壊していないし、はみ出してもいない。
ただ、ポインタを使いまわしてしまっただけの話さ。
まあ、敵クラスを作った人間以外の人間が敵クラスを使うときは要注意といったところだね。
鉄則としてヌル判定をするポインタの使い回しは死んでもしないとか、
就業規則に書いておけば自分の責任にならなくて済むと思うよ。

213:デフォルトの名無しさん
05/06/24 23:24:05
>>194
ん~、結局同じな気がする。
一瞬、変更に対して強いかな?とも思ったんだけど、「必要そうな情報」に幅がないし
幅を出すと結局変更が両者に及ぶから変わらない。
キャラクタ→スコアシステム#update→キャラクタ#getScore
これ以外の流れというのがちょっと見えてこない。

>>197
元発言者の意図とかみ合ってるかは不明なんだけど・・・・・・
シングルトンをファクトリに生成させるパターンなら切り替えは可。
ScoreSystem scoreSystem = new ScoreSystemFactory(設定)
もう常套句すぎてアレなんだけど、こんな感じ。

214:デフォルトの名無しさん
05/06/24 23:35:04 BE:568936499-
Factoryをnewするのか?(・∀・)ニヤニヤ

隔離スレがパターンの話題で盛り上がって
本スレがスレッドストップとはこれいかに。(゚ε゚)キニシナイけどな。

215:デフォルトの名無しさん
05/06/24 23:35:56
>>212
それは、ダングリングポインタを参照してしまったということだから、
広義ではメモリ管理が出来ていないに等しいと思う。
本来、誰かが使っているならそのポインタは削除してはいけない。

ま、それを完全に保証することはしばしば非常に困難であったり
不可能であったりするのは事実だが

216:デフォルトの名無しさん
05/06/24 23:38:44
メモリ管理できてねぇだけじゃん
インスタンスの生成、消滅の責任とタイミングをキチンとしないからそうなる

217:デフォルトの名無しさん
05/06/24 23:40:13
>>214
あっ!orz
うるせ~、超省略表記なんだよヽ(`Д´)ノウワァァン

218:デフォルトの名無しさん
05/06/24 23:40:14
>>216
でも、この場合は誰の責任になるの?
敵クラス?敵管理クラス?メモリ管理クラス?

219:デフォルトの名無しさん
05/06/24 23:42:05
>>215
でしょ。ポインタ頼みのステータス管理なんてやらないにこしたことないんだよ。

220:デフォルトの名無しさん
05/06/24 23:42:38 BE:505721489-
ところで複雑なスコアシステムってどんなのがあるの?
あんまりいろんな種類のゲーム知らないから単純なポイントの加算しか思い浮かばない。

221:デフォルトの名無しさん
05/06/24 23:45:10
>>219
いや、それはいいすぎ....
まあ、参照関係が複雑な有向巡回グラフみたいになると手におえなくなりがちなのは
確かだが、常にそうだというわけではないし、参照カウンタで済む場合は
それを使うという手もある。

222:デフォルトの名無しさん
05/06/24 23:45:12

ゲームの場合例えば敵キャラが消滅したら即deleteするのはありえない
ゲームタスクのループ内で自機が参照してるかも知れないし
他の敵も参照してるかもしれない
敵キャラに消滅フラグなりなんなり持たせて
ゲームタスクのループとは別フェイズで実際にdeleteなりメモリプールに戻すなりする

ってデザパタ関係ないな

223:デフォルトの名無しさん
05/06/24 23:45:31
ボーリングは少しメンドイ。
マージャンとかかな。

224:222
05/06/24 23:45:54
>>220

225:223
05/06/24 23:46:46
222すまん、レスつくの速すぎて慌てた。
>>220

226:デフォルトの名無しさん
05/06/24 23:49:47
>>221
でも本音ではしっかりステータス管理してもらったほうがいいでしょ。
よくないよ。議論に勝つ為のレスなんてつけるもんじゃない。

227:デフォルトの名無しさん
05/06/24 23:52:12
>>226
なぜだッ!!
なぜ貴様に俺の心が読み取れるんだッ!!!

228:デフォルトの名無しさん
05/06/24 23:52:25
>>223
マージャンとインベーダーの間で再利用するの?
されは流石に無理ないか?

229:デフォルトの名無しさん
05/06/24 23:55:43 BE:442506097-
>>223
あぁ、なるほど。

敵の消滅とかの話が出てたから、
シューティングっぽいゲームばかりを想像していたヨ。

>>228
マージャンだと点数の計算方法が複数ある…気がしたような気がしないような。
なので切り替えられると便利かもしれない。

230:デフォルトの名無しさん
05/06/24 23:56:50 BE:168574346-
さすがに異種ゲームの点数計算クラスを共有しようとは誰も考えないと思うので。

231:デフォルトの名無しさん
05/06/25 00:16:23
>>214
相変わらず僻みっぽい馬鹿だな。
とりあえず
スレリンク(tech板:14-15番)
のリンク先くらい読んでから煽れクズ

232:デフォルトの名無しさん
05/06/25 00:20:00
結局、>>198からの議論は、「オブジェクトを(ゲーム上)消したことに
すべきタイミングと、実際に消していいタイミングは必ずしも一致しない」
(通常後者のほうが遅い)

ということに尽きるのかな。
一言で言えるんだから、一言で言えばいいのに。

233:デフォルトの名無しさん
05/06/25 00:21:35
まぁ、>>213がド素人なのは誰の目にも明らかだがなw
Singletonの生成にはコンストラクターを使わない。つまり、getInstance()とかで生成する。
Factoryの目的は、どのサブクラスのインスタンスを生成するか、という点を抽象する事にある。


234:デフォルトの名無しさん
05/06/25 00:24:05
class Singleton {
  static object m_Foo;
  static object m_Bar;

  static object getFoo() { return m_Foo; }
  static object getBar() { return m_Bar; }
}

ではなぜまずいのでしょうか
getInstance()とかいちいちウザいです


235:デフォルトの名無しさん
05/06/25 00:30:39
スルー。

236:214
05/06/25 00:34:49 BE:210717465-
>>231
相変わらず汁が先走ってるな。
とりあえず >>213-214 >>217 の流れを見て
自分の過ちと傲慢さを理解して恥じろ。

237:デフォルトの名無しさん
05/06/25 00:36:54 BE:126431429-
>>232
注意点は一言で言えるが実装は一言で言えないぜ。

238:デフォルトの名無しさん
05/06/25 00:39:54
>>237
流石に実装まで示せとは誰も言ってないじゃまいか。

239:デフォルトの名無しさん
05/06/25 00:41:23
>>238
もう、日本は終わったんだよw

240:237
05/06/25 00:44:23 BE:505721298-
>>238
>>198-~の実装の議論は少し有意義に見えたが。


241:234
05/06/25 00:49:32
華麗にスルーされちゃってぼくちん少し寂しいの
てへ

242:デフォルトの名無しさん
05/06/25 00:53:55
>>241
俺はアンチなんだけど
それって実体はいつできるんだ?
呼び出す前からできちまってる気がしねぇ?

243:234
05/06/25 00:56:37
コンストラクタはstaticにすればいいんじゃまいか

つか、それだけの問題で
まいかい
Singleton timpo = Singleton.getInstance();
bokkiage = timpo.invoke();
とかやるのはいやです。



244:デフォルトの名無しさん
05/06/25 00:57:06
目的は「インスタンスを1つに固定する」だからいいじゃん

245:デフォルトの名無しさん
05/06/25 00:57:15

 華麗なる素人スレ



246:デフォルトの名無しさん
05/06/25 00:58:12
>>243
bokkiage = (Singleton.getInstance()).invoke();

247:デフォルトの名無しさん
05/06/25 00:59:32
>>234
仮想コンストラクタで検索。

一般に、クライアントコードが簡素になる点と
融通が効く点が利点して上げられてる。

248:デフォルトの名無しさん
05/06/25 01:00:36
>>243
それじゃおめ、
そうやって組んだしんぐるトンは通る可能性のあるものに関しては実行時にすべて生成されてしまうわけだな?
つ 逝ってよし

249:234
05/06/25 01:02:39
>>247
継承を考えてなんとなく柔軟性を持たせたいというのは分かりますが
実際には、継承なんかしないクラスこそシングルトンの候補であることが
非常に多い気がします。
その場合には、闇雲にシングルトンにせずとも構わないんでしょうかね。

「クライアントコードが簡素に成る」については全く納得がいきません。
メンバがstaticであれば
(Singleton.getInstance()).invoke();
ではなく
Singleton.invoke();
と書けるでしょう。

250:デフォルトの名無しさん
05/06/25 01:04:50
まあ、いつみてもデザパタは役に立たないよね。

251:デフォルトの名無しさん
05/06/25 01:06:04
なんでSingletonの話題しか振れないの?
重箱の隅しか突付けない哀れな煽りだ

252:234
05/06/25 01:07:00
ぼく、あおりじゃないのに(; ;)

253:デフォルトの名無しさん
05/06/25 01:07:14
======================================================================
          このスレは厨房を隔離するための隔離スレです。。。
======================================================================


254:デフォルトの名無しさん
05/06/25 01:07:54
>>234 → >>243 → ぬるぽ

255:デフォルトの名無しさん
05/06/25 01:16:10
>>252
お前はネタw

256:デフォルトの名無しさん
05/06/25 01:20:06
>>249
インベーダーの例に戻って言うと、当初のスコアシステムに
ハイスコアの記録機能を追加した新スコアシステムを作る
場合、継承するのが妥当なんじゃない?

257:234
05/06/25 01:21:39
>>256
その場合、旧スコアシステムと新スコアシステムが共存しないのであれば
継承する必要は無いと考えますが。

258:234
05/06/25 01:22:03
>>255
ぼくでおなにーとかはしないでください
こわいので

259:デフォルトの名無しさん
05/06/25 01:24:55 BE:245837257-
単なる関数郡として使うだけならstaticでいいと思う。


260:234
05/06/25 01:26:34
>>259
それは、いわゆるUtilityクラスのような、状態の存在しないものですね。
それについて異存のあるひとはいないとおもいます。

ぼくがいっているのは、状態が存在するが、システムでユニークなクラス
のことです。とゆうか、Singletonというのは、そのようなものでしょ?

261:234
05/06/25 01:27:07
> システムでユニークなクラス
ちょっとはしょりすぎた

すみません、酔っているので

262:デフォルトの名無しさん
05/06/25 01:27:20
>>249
Foo foo = Singleton.getFoo();
Bar bar = Singleton.getBar();

Foo foo = Singleton.getInstance("Foo");
Bar bar = Singleton.getInstance("Bar");

後者の方が簡素というか、動的に生成物を変更するのが楽。

263:デフォルトの名無しさん
05/06/25 01:30:31
まぁ文字列渡すよりは、
・コンフィギュレーション選択用の定数か、
・コンフィギュレーションを表すオブジェクト
を渡すべき


264:デフォルトの名無しさん
05/06/25 01:32:54
>>260
それは「グローバル変数」だ。悪。

シングルトンでは「状態のないもの」を表現する。
たとえば、「ストラテジーパターン」で使うストラテジーオブジェクトとか、
「ステートパターン」で使うステートオブジェクトとか。
「ファクトリー」もそうだ。

265:デフォルトの名無しさん
05/06/25 01:34:21
>>257
オブザーバーパターンとのかみ合わせを考えてみて。
public class Enemy {
 addObserver(ScoreSystem ss) {}
}
↑こうなってた場合、継承が必要。

public interface Observer {}
public class Enemy {
 addObserver(Observer observer){}
}
↑こうしとかないオマイが馬鹿と言われれば、だよね~
としか言い様がない気もするが・・・・・・

266:234
05/06/25 01:34:27
>>254
え?
ぼくの認識では、メンバ変数はすべからく「状態」だと思っているのですが
間違いですか?

なんか、ちょっとはつみみな所見です。

267:234
05/06/25 01:36:31
>>265
いやその、共存する必要が無いのであれば、インタフェースを変えずに
スコアシステムの「実装」を変えればいいだけなのではないかと。

なにか勘違いしていますか?ぼくは

268:234
05/06/25 01:37:33
>>262

それはちょっとSingletonといいつつFactory風でもありますね。
そういうニーズがある場合には、確かに意義がある気がします。


あまりそういうケースが多くは無い気はしますが。

269:デフォルトの名無しさん
05/06/25 01:40:49
デザパタ役に立って無いよ。
そろって馬鹿だな。
デザパタとか別にしても。

270:259
05/06/25 01:40:47 BE:379290896-
>>260
いまいちやりたいことが分からないなぁ…。
Singletonが1種類のオブジェクトしか返さなくて、
将来その仕様に変更がないと言い切れるなら
いっそ状態もstatic管理でいいと思う。要するにSingleton不要。

デザパタは仕様変更に柔軟に対応するための手段だと思うから。

271:デフォルトの名無しさん
05/06/25 01:42:57
>>264
このスレ読んでると、どんどん悪い癖、迷信に染まっていく傾向があるな。
状態はグローバル変数だから駄目?
それはあんたの信念であって、広く認められているSingletonの定義より狭いやん。
例えばアプリケーションの設定を Singletonに置くとして、
設定を変更する事は充分ありえる。つまり、Singletonに状態を持たせる事は充分有り得る。

GoF日本語版 p138
◎結果
Singletonパターンの効果を次にあげる。

1.インスタンスへのアクセスを制御する。(詳細略:唯一のインスタンスなのでアクセスチェックが簡単)
2.名前空間を減らす。Singletonパターンはグローバル変数の改良である。唯一のインスタンスを格納するグローバル変数 (注: C++, Smalltalk)を宣言する必要はなくなる。
3.オペレーションや内部表現を詳細化できる。(詳細略:Singleton のサブクラス化に関する話)
4.インスタンスの数を変えることができる。(詳細略:インスタンス数を2つ以上に変更する事も容易)
5.クラスオペレーションよりも柔軟である。(詳細略)

272:デフォルトの名無しさん
05/06/25 01:43:38
>>270
Visitorが状態を持たないとき、
それでもオマイさんは
Visitorをnewしますか?

273:234
05/06/25 01:43:59
>>270
いやその、「仕様変更」に対するデフォルトの対応が「継承」である、
というほうがぼくにとっては不自然なのですが。

たとえばオブジェクトのシリアライズ方式がv1とv2で変わっていて
両者に対応しなければならない、とかいうケースであれば、継承を
使うのは理解できます。

しかし、そもそも「唯一」であったものに、「継承」を適用するケース
って、そんなに多いのかな、と。普通、継承は、複数のものの差異を
選択的に無視したい場合に用いますよね。単純化のしすぎですが。

274:デフォルトの名無しさん
05/06/25 01:45:29


  つまりさ、このスレの白熱議論っつうのは、
  すべからく >>264みたいな素人の迷信暴言が発端なわけ。

  くだらねぇんだよおまぃらの議論は

275:デフォルトの名無しさん
05/06/25 01:45:47
>>271
GoF本にはそんなこと書いてなかったけど
一体いつ定義されたの?

276:234
05/06/25 01:45:57
ぼくのほうが知

277:デフォルトの名無しさん
05/06/25 01:46:13
>>274
面白い議論キボン

278:デフォルトの名無しさん
05/06/25 01:46:26
>>275
 恥を知れクズが

279:234
05/06/25 01:46:38
とぎれた
ぼくのほうが素人だもん

とか書こうとしたのに

280:デフォルトの名無しさん
05/06/25 01:48:33
>>278
かかってこいよ厨房w

281:デフォルトの名無しさん
05/06/25 01:48:39
>>266=>>234
おまぃは誤爆してる上、
>>234の定義で>>243するとNullPointerExceptionがおきるつう認識もない・・・
・・・Singleton書いた事あるぅ?(>>262を参照汁)

282:デフォルトの名無しさん
05/06/25 01:49:13
>>267
差分プログラミングと開放/閉鎖原則で検索。

283:デフォルトの名無しさん
05/06/25 01:49:47
>>280は底知れない白痴厨房。GoF本手元に置かずにそんな煽りやってるとは抱腹絶倒だな。

284:234
05/06/25 01:50:29
>>281
あ、>>234の例はただの非常に単純化した例ですので。

いいたいことは、メンバを全てstaticで実装し、初期化はstaticコンストラクタ
で行うようなクラスをSingletonの変わりにして何かまずいのか?
ということに過ぎません。

285:デフォルトの名無しさん
05/06/25 01:51:10
>>271の該当ページを読んでみたらぁ?

286:234
05/06/25 01:52:42
>>282
メイヤー先生ですか。
私としては、もう使いもしないv1のコードが残っているのは違和感を感じますがね。

それに、元のデザインが非常によくできていて、適切なフックなどが容易されていない
限り、継承してメソッドをオーバーライドするより元のメソッドそのものを
書き換えることのほうが容易であることも多い気がします。


287:234
05/06/25 01:53:59
実際、バージョンアップの際に常に継承で対応するという開発手法は
どれぐらい一般的なんでしょうか?

もとのクラスを書き換えるのは、邪悪?
open/close原則を厳密に適用すれば、そういうことになってしまいますね。

288:デフォルトの名無しさん
05/06/25 01:54:51
で?
好きにすりゃえーやん。
漏れは藻舞を説得するつもりはねぇ~し

289:259
05/06/25 01:55:54 BE:189645293-
>>234はSingletonにこだわらないほうがいいと思われ。
もうこれは個人個人の開発スタイルなので。

それでも共同開発時はSingletonをお勧めしたい。

290:デフォルトの名無しさん
05/06/25 02:00:01
>>287
アンチの俺から言わせると、
一般的なわけねーだろ。
あきらかに継承の使い方を間違ってる上に悪用としかいいようがない。
アホだアホ。マジで救いようがねー。

291:デフォルトの名無しさん
05/06/25 02:03:49
哀れなもんだ
煽れる時に煽るだけで、
中身は空っぽだもんな、おまえ

292:デフォルトの名無しさん
05/06/25 02:04:28
>>268
仮想コンストラクタはファクトリとシングルトンの合わせ技だから

ニーズは普通にあると思うよ。
オセロの例に戻ると、プレーヤーを動的に変更したいというのは自然でしょ?

293:234
05/06/25 02:04:40
ぼくは、あおりじゃないんだもん(; ;)

294:デフォルトの名無しさん
05/06/25 02:05:42
>>291
オマエモナーw

295:デフォルトの名無しさん
05/06/25 02:06:35
>>284
1つのクラスが複数のstaticメンバ変数を管理するのはいくない。

296:234
05/06/25 02:07:54
>>292
ニーズは、あるでしょうね。
ぼくは、実はSingletonでなくていいのに
「いまどきSingletonじゃないと、女のコにモテないぞ」
「グローバル変数はダサ!Bjarne stroustrupが何と言おうと絞め殺せ」
「static記憶クラス?そんなん、石器時代の遺物でしょ?」

とかそんな理由でSingletonにされているケースも、結構おおいんじゃないの?

と、そういいたかっただけです。

297:234
05/06/25 02:08:21
>>295
それは、なぜでしょうか。

298:デフォルトの名無しさん
05/06/25 02:08:44
>>291
文体と主張だけで彼は特定できる。
だから、スルーして淡々と進めてるだろ?お前さんもスルーするよろし。

299:デフォルトの名無しさん
05/06/25 02:10:45
デザパタ信者は巣に帰れよ。
スレリンク(tech板)l50

ここでデザパタを使う前提の話をするな。
ここはデザパタの存在の可否を決めるスレだ。

#大体、デザパタなんて誰も使ってないんだから過疎スレで
#まとまってろってのw
#アンチをこっちに隔離したとかほざいてたくせにアンチ追い出したら
#ただの過疎スレになってやんのwバーカw

300:デフォルトの名無しさん
05/06/25 02:11:45
>>298
ここじゃ荒らしはお前の方なのw
わかったらさっさと過疎スレ帰れよw

301:デフォルトの名無しさん
05/06/25 02:12:20
>>297
クラスの役割が訳わかんなくなるから。

302:デフォルトの名無しさん
05/06/25 02:13:14
>>299-300
哀れな奴

303:デフォルトの名無しさん
05/06/25 02:13:38
>>302
ヒント:スルー

304:デフォルトの名無しさん
05/06/25 02:14:54
>>302-303
本気で帰ってよ。
デザパタ語るなら向こうが本スレだからw


305:234
05/06/25 02:15:01
>>301
ぼくは頭が悪いので、やはりそれでは理解できませんね。

確かに全てをstaticで実装すれば、クラスはただのグローバル変数+関数と
それをつつむnamespaceに同等のものになるでしょう。

で、それが何か問題なのですか?


306:デフォルトの名無しさん
05/06/25 02:16:01
>>305
>何か問題なのですか?
だからここはデザパタの可否を決めるスレだっつってんだろ!
荒らしが!

307:デフォルトの名無しさん
05/06/25 02:18:16
>>305
だいたい、何、頭に血上らせて必死におばかな議論してんだ、厨房。
グローバル変数を1つも使わないプログラムとかみたことないのか?
使ってる時点でレベル低すぎだってのにいらいらすんだよ。
お前みたいな馬鹿みてると。

308:デフォルトの名無しさん
05/06/25 02:18:25
>>296の発言で、もう>>234はネタ決定だな。
わざわざSingletonが当てはまらない想定を持ち出して煽ってるんだから、
別にSingleton勧めるいわれはないじゃん。

>>234もそろそろ初心者プログラミング相談室にでも相談してみたらどう?

309:234
05/06/25 02:19:24
>>295さんの主張で一番よく分からないのは、
「1コのstaticメンバならOKだが、複数だとNGになる」
という理由です。

そこのところをもう少し分かりやすく説明していただけませんか。
寡聞にして聞いたことの無い主張なものですから。

310:デフォルトの名無しさん
05/06/25 02:19:33
>>307も変な奴だな。
Singletonはグローバル変数の代わりをスコープに入れている。
つか、Javaじゃグローバル変数なんてないし。

311:デフォルトの名無しさん
05/06/25 02:19:46
>>305
そういうことすると、そのクラスが何してるか(何を管理しているクラスなのか)、
後から見た人はわかんないでしょ。コード追っていかないと。
だからクラスの役割ははっきりさせる必要がある。

312:デフォルトの名無しさん
05/06/25 02:19:53
>>287
利点もあるし、難点もあるな>継承
Javaなんかだと、最近は継承よりも委譲とインターフェイスを
優先する風潮がある。

ソースの書き換えは、規模が大きくなると変更が他の部分に
影響を与えてドタドタドタっとドミノ倒しになる事がある。
それじゃあ継承ならそうならないかって言うと、まぁそうとも言
い切れんわけだが・・・・・・
まっ、それでinterfaceを多用する風潮が生まれたんだろう。
これならインターフェイスのみを残して新しく書き起こす場合
でも、継承を利用する場合でも、変更部分を局所化できる。

313:234
05/06/25 02:20:50
>>308
いやその、パラメタライズされていないgetInstance()を使う
Singletonの例は多いと思うのですが。
パラメタライズされている場合については、了解しました
と言っておきましょう。


314:デフォルトの名無しさん
05/06/25 02:21:03
>>312
>Javaなんかだと、最近は継承よりも委譲とインターフェイスを
>優先する風潮がある。

Java「なんかだと最近」?はぁ?
最初っからそうだよ厨房


315:デフォルトの名無しさん
05/06/25 02:21:24
>>310
はぁ?デザパタ信者ってのは、
グローバル変数の何がまずいのか知らないのか?
アホだな。レベルが低すぎる。
もうちょっと勉強してきてくださいよw

316:234
05/06/25 02:22:28
>>311
>>309に答えていただけませんか。やはりよくわからないんですが。
なぜstatic変数が吹く数字なると
「後から見た人はわかんない」ようになるのか。

317:デフォルトの名無しさん
05/06/25 02:23:05
語尾ダブリューの人、なんか話題がtoo oldで哀れ


318:デフォルトの名無しさん
05/06/25 02:24:00
>>316
俺も聞いておきたい。つか、ネタかローカルルールだと思っている。

319:デフォルトの名無しさん
05/06/25 02:24:11
>>311が逃げてるのがよくわかるなw
ほら、本スレに逃げ込めよw

320:234
05/06/25 02:24:23
>>312
ぼくがinterfaceに対するプログラミングの一番の恩恵を認識したのは
実はC++のリンク互換性なんですがね。

COMの発想のベースはそこにあります。大変汚いものですが。

321:デフォルトの名無しさん
05/06/25 02:25:20
なんかかなりネタ臭いスレになってきたな。

322:デフォルトの名無しさん
05/06/25 02:26:15
>>321
お前は速く>>309の質問に答えてやれよw

323:デフォルトの名無しさん
05/06/25 02:26:57
>>311, >>316
実は、Singletonってインスタンスが2つ以上あってもいいんだよね。
つか2つ以上生成した時点で、狭義のSingletonとは見なされない傾向があるが。
例えば某所で話題になっていたInstance PoolとかConnection Poolみたいなパターンになっちまう。


324:デフォルトの名無しさん
05/06/25 02:27:55
>>323
だからどうしたんだよ。余計なレスつけんなアホ。

325:234
05/06/25 02:28:33
>>323
Poolのようなものならば、PoolManagerが欲しい気がしますね。Singletonの。

326:デフォルトの名無しさん
05/06/25 02:31:24
>>325
お。冴えてるやん。
すると、ダンマリ決め込んでる>>311が回答すべき内容が見えてくる・・・はず・・・なんだが・・・なんともはや

327:デフォルトの名無しさん
05/06/25 02:32:05
>static変数が
デザパタとか関係なく好き嫌いの問題でしょ、単に。
漏れは嫌だけど。
↓こんなコード書いてくるチームメンバがいたらはったおしてやるけどね。

class Sigleton
{
 private static Object A;
 private static Object B;
 ・・・
 private static Object Z;

 static{
  A = new Object();
  B = new Object();
  ・・・
  Z = new Object();
 }

 static public Object getA(){ return A;}
 static public Object getB(){ return B;}
 ・・・
 static public Object getZ(){ return Z;}
}

328:デフォルトの名無しさん
05/06/25 02:32:55
一向にまとまる気配が無いよ>デザパタ
こんなのがコミュニケーションツールでいいんですか?>デザパタ
人によって使い方違ってるじゃないですか?>デザパタ
職場でもこんな戦いをしなきゃいけないんですか?>デザパタ

329:326
05/06/25 02:33:17
あぁーあ。せっかく回答が見えかけた(つか見えた)のに、
また訳わかんない主張系の人が、スレを混沌に導く・・・・・・もう飽きたから寝る。

330:デフォルトの名無しさん
05/06/25 02:33:49
>>327
つか、マジで本スレ帰れってw

331:デフォルトの名無しさん
05/06/25 02:34:50
>>329
 お れ の せ い に な る の は な に か ち が う き が す る ! (笑)

332:234
05/06/25 02:40:17
>>327
ただの好き嫌いの問題であれば、ぼくの>>296の主張はあながち
ウソでもなかったようですね。

ちなみにそれによっていちいちgetInstance()を書かなければならないことを
あなたは面倒であると考えたことはないのでしょうか?

333:259
05/06/25 02:41:23 BE:189645293-
>>329
何に対する回答だ??回答以前に問題が明確でないんだよ。論点あちこち行ってるじゃん。

334:デフォルトの名無しさん
05/06/25 02:42:40
こっちの方が盛り上がってるのがウケル。
こっちをデザパタスレにしようよ。

335:寝ぼけまなこでレス
05/06/25 02:44:06
>>333
 >>311

336:寝ぼけまなこでレス
05/06/25 02:45:15
>>334
 偽デザパタスレ

337:寝ぼけまなこでレス
05/06/25 02:49:49
 

338:デフォルトの名無しさん
05/06/25 02:51:09
厨房の行動パターン
・メール欄に文章

339:259
05/06/25 02:51:15 BE:224765748-
>>335
static管理したらクラスの役目がわかりにくくなるって?
インターフェースが同じなら変わらないだろ。論点にもなりゃしないさ。

340:
05/06/25 02:52:01
 

341:259
05/06/25 02:53:01 BE:189645293-
ム板にもIDキボンヌ

342:デフォルトの名無しさん
05/06/25 02:53:21
>>339
 >>323, >>325-326

343:デフォルトの名無しさん
05/06/25 02:54:48
>341
お前そんなんだからいつまでたっても0ポイントなんだよ。

344:デフォルトの名無しさん
05/06/25 02:55:58
で、アンチの反証は?

345:334
05/06/25 02:56:29
シングルトンで盛り上がってるのね。
↓static的としてこうするのがいいのか
Singleton.invoke();
↓シングルトン的にこうするのがいいのか
Singleton s = Singleton.getInstance();
s.invoke();
って話ね。

正直、シングルトンだとインスタンスを途中でいじれるぐらいしかメリットないんじゃないかな。
↓例えば、デコレータでシングルトンのインスタンスにちょっと加工するとか、
Singleton s = Singleton.getInstance();
s = new TuikaKinouSingleten(s);
// なにか処理~
s.invoke();
// なにか処理~

↓または途中で中身すり替えをするとか。
Singleton s = Singleton.getInstance();
s = new TestYouSingleten(s);
// なにか処理~
s.invoke();
// なにか処理~

staticだとそれができなくなるぐらいではないだろうか。
まあ個人の好みで使い分ければよいのではないかと。

346:デフォルトの名無しさん
05/06/25 02:58:56
>>345 GJ.

347:デフォルトの名無しさん
05/06/25 03:00:55
>>334
だからデザパタスレなんて本来はその存在の可否に関する
議論の方がもりあがってたんだってば。

デザパタ自体はシングルトン1つとっても意見はバラバラ。
コミュニケーションツールなんて夢のまた夢。

掲示板じゃ自由に言えるけど、会社じゃ適用に至る明確な理由が必要になる。
そこでデザパタが必要である理由なんて説明できる奴がいるわけが無い。
昔からずっとこんな調子なんだよ。
信者とアンチの聖戦が一番盛り上がるんだから叩きだしたって誰かが追撃してくるんだよ。

構図はいつも
「オブジェクト指向が理解できなくて、デザパタに逃げてきた馬鹿」VS「オブジェクト指向原理主義者」


348:259
05/06/25 03:00:55 BE:568936499-
>>342
Poolはわからんが、
インターフェースとドキュメント見りゃ動作が分かるってのが、あるべきクラス設計の姿だろ、
実装に複数のstatic変数使ったからって、それが崩れることがあるのか?

349:259
05/06/25 03:03:10 BE:126431036-
>>347
>オブジェクト指向が理解できなくて、デザパタに逃げてきた馬鹿

アンチデザパタ派は何故いつもそう言う。
たとえば>>345がオブジェクト指向を理解できていないように見えるのか?
オブジェクト指向を理解しないとデザパタ理解できないぜ。

350:デフォルトの名無しさん
05/06/25 03:04:55
>>347
 頭悪い議論で盛り上がるのはもう沢山。
 だから隔離されてるんだよおまぃは

351:234
05/06/25 03:06:06
>>345
ああなるほど、そういう用例を考えると便利ですね。
でも、加工前にgetInstance()しなきゃいかんのはちょっとカッコ悪いですね。
普通のオブジェクトよりその点がちょっとダーティ。でも逃げ道は在るよ、
というところでしょうか。


>>347
> 構図はいつも
> 「オブジェクト指向が理解できなくて、デザパタに逃げてきた馬鹿」
> VS「オブジェクト指向原理主義者」

ぼくはどっちでもないとおもいます。


352:デフォルトの名無しさん
05/06/25 03:07:27
構図はいつも、「自作自演するアンチ」vs「自作自演するアンチアンチ」

353:234
05/06/25 03:07:55
そろそろ
イマドキDIだからSingletonなんかつかわないぜ(プ

とか誰か言うのかと思ってたらそうでもなかったですね

354:234
05/06/25 03:08:24
>>352
ぼくは自作自演なんかしてないもん(; ;)

355:デフォルトの名無しさん
05/06/25 03:08:50
基本的に意味不明。
説明汁。

356:デフォルトの名無しさん
05/06/25 03:09:47
なんだServiceLocatorの話か。

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がよくまとまってるから読んでからにしたほうがいいと思う。


537:デフォルトの名無しさん
05/06/26 21:29:04
>>536
否定派の主張が間違っているって言うこと?
その主張には何通りかあったと認識してたけど……

538:デフォルトの名無しさん
05/06/26 21:34:49
ui

539:デフォルトの名無しさん
05/06/26 22:01:18
いい加減に
『「現実物をそのままモデル化するのがオブジェクト指向」ってのは間違ってるんだぜ!ぎゃはは』
っていう釣りは止めてください。
おまいらは本当に進歩がないですね。


540:デフォルトの名無しさん
05/06/26 22:01:41
わかったのか、前橋?


541:デフォルトの名無しさん
05/06/26 22:04:51
『「現実物をそのままモデル化するのがオブジェクト指向」ってのは間違ってる』 って言ってるのは俺だけだなそういえば

542:デフォルトの名無しさん
05/06/26 22:05:25
ところで前橋って何

543:デフォルトの名無しさん
05/06/26 22:05:48
モノを知らない人が来ました。


544:デフォルトの名無しさん
05/06/26 22:05:55
>>540
前橋って誰だー!

545:デフォルトの名無しさん
05/06/26 23:06:27
=================================================================
     要するに、読む価値ないスレ。
     無理に読んだら、確実にバカが伝染する
=================================================================

546:デフォルトの名無しさん
05/06/26 23:07:44
>>545
枠線付けないとみんなにスルーされると思って不安なんですねw

547:デフォルトの名無しさん
05/06/26 23:08:07
ほんと、痛い人の巣窟

548:デフォルトの名無しさん
05/06/26 23:10:15
これだけ痛い人が一つのスレに集まるのは奇跡的。
つか、どー考えても自作自演だろ、この痛さは

549:デフォルトの名無しさん
05/06/26 23:17:32
痛い人同士の間でこれらが会話(議論)として成り立っているのが、真に不思議

550:デフォルトの名無しさん
05/06/26 23:23:18
自作自演の脳内会話だから
・・・いわゆる一般の会話じゃなくて、
分裂症患者の妄言みたいなもの

551:デフォルトの名無しさん
05/06/27 00:22:49
ところで前橋とはどのような殿方かね?
っていうか誰だよ前橋。

552:デフォルトの名無しさん
05/06/27 00:23:37
まあ隔離スレとしてはこんなものでしょう。

553:デフォルトの名無しさん
05/06/27 00:54:04
ここのアンチみたいな人が部下や同僚にいると大変だよなぁ・・・
まぁ、実際この手のタイプはいるけどさ

554:デフォルトの名無しさん
05/06/27 02:34:47
>>541
>「現実物をそのままモデル化するのがオブジェクト指向」

痛いよなw だから存在しない「抽象の抽象」は理解不能なんだよなw
いつからOOPってこんな稚拙で低知能な思考形態を正当化する概念になったんだ?
こんなのプログラム組んだことのない、影で「クソ設計勘弁してくれ」呼ばわりされている「自称」SEの戯言だから心配するな。
こういう連中が「オブジェクト指向」と連呼するごとにチープな言葉になっていく。


555:デフォルトの名無しさん
05/06/27 02:37:54
いや、素人でしょ?>彼

556:デフォルトの名無しさん
05/06/27 02:41:46
つまり、アンチがこんなところで必死なのは、自分の思考能力を超えているような概念が流行してしまっては困るからだよ。
過去ログを見てみ。クソみたいな感情論,オリジナリティあふれる稚拙なオブジェクト指向論ばっかで、まともにデザパタを理解しての批判は一つもない。
必死に自分のカスぶりをアピールしているだけということに本人が気付いていないところが滑稽だよなw



次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch