1 名前:デフォルトの名無しさん mailto:sage [2005/06/21(火) 19:09:56 ] そもそもデザインパターン自体どうなのよ?って話はここでやれ。
281 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 01:48:39 ] >>266 =>>234 おまぃは誤爆してる上、 >>234 の定義で>>243 するとNullPointerExceptionがおきるつう認識もない・・・ ・・・Singleton書いた事あるぅ?(>>262 を参照汁)
282 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 01:49:13 ] >>267 差分プログラミングと開放/閉鎖原則で検索。
283 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 01:49:47 ] >>280 は底知れない白痴厨房。GoF本手元に置かずにそんな煽りやってるとは抱腹絶倒だな。
284 名前:234 mailto:sage [2005/06/25(土) 01:50:29 ] >>281 あ、>>234 の例はただの非常に単純化した例ですので。 いいたいことは、メンバを全てstaticで実装し、初期化はstaticコンストラクタ で行うようなクラスをSingletonの変わりにして何かまずいのか? ということに過ぎません。
285 名前:デフォルトの名無しさん [2005/06/25(土) 01:51:10 ] >>271 の該当ページを読んでみたらぁ?
286 名前:234 mailto:sage [2005/06/25(土) 01:52:42 ] >>282 メイヤー先生ですか。 私としては、もう使いもしないv1のコードが残っているのは違和感を感じますがね。 それに、元のデザインが非常によくできていて、適切なフックなどが容易されていない 限り、継承してメソッドをオーバーライドするより元のメソッドそのものを 書き換えることのほうが容易であることも多い気がします。
287 名前:234 mailto:sage [2005/06/25(土) 01:53:59 ] 実際、バージョンアップの際に常に継承で対応するという開発手法は どれぐらい一般的なんでしょうか? もとのクラスを書き換えるのは、邪悪? open/close原則を厳密に適用すれば、そういうことになってしまいますね。
288 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 01:54:51 ] で? 好きにすりゃえーやん。 漏れは藻舞を説得するつもりはねぇ〜し
289 名前:259 mailto:sage [2005/06/25(土) 01:55:54 BE:189645293- ] >>234 はSingletonにこだわらないほうがいいと思われ。 もうこれは個人個人の開発スタイルなので。 それでも共同開発時はSingletonをお勧めしたい。
290 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 02:00:01 ] >>287 アンチの俺から言わせると、 一般的なわけねーだろ。 あきらかに継承の使い方を間違ってる上に悪用としかいいようがない。 アホだアホ。マジで救いようがねー。
291 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 02:03:49 ] 哀れなもんだ 煽れる時に煽るだけで、 中身は空っぽだもんな、おまえ
292 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 02:04:28 ] >>268 仮想コンストラクタはファクトリとシングルトンの合わせ技だから ニーズは普通にあると思うよ。 オセロの例に戻ると、プレーヤーを動的に変更したいというのは自然でしょ?
293 名前:234 mailto:sage [2005/06/25(土) 02:04:40 ] ぼくは、あおりじゃないんだもん(; ;)
294 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 02:05:42 ] >>291 オマエモナーw
295 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 02:06:35 ] >>284 1つのクラスが複数のstaticメンバ変数を管理するのはいくない。
296 名前:234 mailto:sage [2005/06/25(土) 02:07:54 ] >>292 ニーズは、あるでしょうね。 ぼくは、実はSingletonでなくていいのに 「いまどきSingletonじゃないと、女のコにモテないぞ」 「グローバル変数はダサ!Bjarne stroustrupが何と言おうと絞め殺せ」 「static記憶クラス?そんなん、石器時代の遺物でしょ?」 とかそんな理由でSingletonにされているケースも、結構おおいんじゃないの? と、そういいたかっただけです。
297 名前:234 mailto:sage [2005/06/25(土) 02:08:21 ] >>295 それは、なぜでしょうか。
298 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 02:08:44 ] >>291 文体と主張だけで彼は特定できる。 だから、スルーして淡々と進めてるだろ?お前さんもスルーするよろし。
299 名前:デフォルトの名無しさん [2005/06/25(土) 02:10:45 ] デザパタ信者は巣に帰れよ。 pc8.2ch.net/test/read.cgi/tech/1119158274/l50 ここでデザパタを使う前提の話をするな。 ここはデザパタの存在の可否を決めるスレだ。 #大体、デザパタなんて誰も使ってないんだから過疎スレで #まとまってろってのw #アンチをこっちに隔離したとかほざいてたくせにアンチ追い出したら #ただの過疎スレになってやんのwバーカw
300 名前:デフォルトの名無しさん [2005/06/25(土) 02:11:45 ] >>298 ここじゃ荒らしはお前の方なのw わかったらさっさと過疎スレ帰れよw
301 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 02:12:20 ] >>297 クラスの役割が訳わかんなくなるから。
302 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 02:13:14 ] >>299-300 哀れな奴
303 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 02:13:38 ] >>302 ヒント:スルー
304 名前:デフォルトの名無しさん [2005/06/25(土) 02:14:54 ] >>302-303 本気で帰ってよ。 デザパタ語るなら向こうが本スレだからw
305 名前:234 mailto:sage [2005/06/25(土) 02:15:01 ] >>301 ぼくは頭が悪いので、やはりそれでは理解できませんね。 確かに全てをstaticで実装すれば、クラスはただのグローバル変数+関数と それをつつむnamespaceに同等のものになるでしょう。 で、それが何か問題なのですか?
306 名前:デフォルトの名無しさん [2005/06/25(土) 02:16:01 ] >>305 >何か問題なのですか? だからここはデザパタの可否を決めるスレだっつってんだろ! 荒らしが!
307 名前:デフォルトの名無しさん [2005/06/25(土) 02:18:16 ] >>305 だいたい、何、頭に血上らせて必死におばかな議論してんだ、厨房。 グローバル変数を1つも使わないプログラムとかみたことないのか? 使ってる時点でレベル低すぎだってのにいらいらすんだよ。 お前みたいな馬鹿みてると。
308 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 02:18:25 ] >>296 の発言で、もう>>234 はネタ決定だな。 わざわざSingletonが当てはまらない想定を持ち出して煽ってるんだから、 別にSingleton勧めるいわれはないじゃん。 >>234 もそろそろ初心者プログラミング相談室にでも相談してみたらどう?
309 名前:234 mailto:sage [2005/06/25(土) 02:19:24 ] >>295 さんの主張で一番よく分からないのは、 「1コのstaticメンバならOKだが、複数だとNGになる」 という理由です。 そこのところをもう少し分かりやすく説明していただけませんか。 寡聞にして聞いたことの無い主張なものですから。
310 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 02:19:33 ] >>307 も変な奴だな。 Singletonはグローバル変数の代わりをスコープに入れている。 つか、Javaじゃグローバル変数なんてないし。
311 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 02:19:46 ] >>305 そういうことすると、そのクラスが何してるか(何を管理しているクラスなのか)、 後から見た人はわかんないでしょ。コード追っていかないと。 だからクラスの役割ははっきりさせる必要がある。
312 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 02:19:53 ] >>287 利点もあるし、難点もあるな>継承 Javaなんかだと、最近は継承よりも委譲とインターフェイスを 優先する風潮がある。 ソースの書き換えは、規模が大きくなると変更が他の部分に 影響を与えてドタドタドタっとドミノ倒しになる事がある。 それじゃあ継承ならそうならないかって言うと、まぁそうとも言 い切れんわけだが・・・・・・ まっ、それでinterfaceを多用する風潮が生まれたんだろう。 これならインターフェイスのみを残して新しく書き起こす場合 でも、継承を利用する場合でも、変更部分を局所化できる。
313 名前:234 mailto:sage [2005/06/25(土) 02:20:50 ] >>308 いやその、パラメタライズされていないgetInstance()を使う Singletonの例は多いと思うのですが。 パラメタライズされている場合については、了解しました と言っておきましょう。
314 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 02:21:03 ] >>312 >Javaなんかだと、最近は継承よりも委譲とインターフェイスを >優先する風潮がある。 Java「なんかだと最近」?はぁ? 最初っからそうだよ厨房
315 名前:デフォルトの名無しさん [2005/06/25(土) 02:21:24 ] >>310 はぁ?デザパタ信者ってのは、 グローバル変数の何がまずいのか知らないのか? アホだな。レベルが低すぎる。 もうちょっと勉強してきてくださいよw
316 名前:234 mailto:sage [2005/06/25(土) 02:22:28 ] >>311 >>309 に答えていただけませんか。やはりよくわからないんですが。 なぜstatic変数が吹く数字なると 「後から見た人はわかんない」ようになるのか。
317 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 02:23:05 ] 語尾ダブリューの人、なんか話題がtoo oldで哀れ
318 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 02:24:00 ] >>316 俺も聞いておきたい。つか、ネタかローカルルールだと思っている。
319 名前:デフォルトの名無しさん [2005/06/25(土) 02:24:11 ] >>311 が逃げてるのがよくわかるなw ほら、本スレに逃げ込めよw
320 名前:234 mailto:sage [2005/06/25(土) 02:24:23 ] >>312 ぼくがinterfaceに対するプログラミングの一番の恩恵を認識したのは 実はC++のリンク互換性なんですがね。 COMの発想のベースはそこにあります。大変汚いものですが。
321 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 02:25:20 ] なんかかなりネタ臭いスレになってきたな。
322 名前:デフォルトの名無しさん [2005/06/25(土) 02:26:15 ] >>321 お前は速く>>309 の質問に答えてやれよw
323 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 02:26:57 ] >>311 , >>316 実は、Singletonってインスタンスが2つ以上あってもいいんだよね。 つか2つ以上生成した時点で、狭義のSingletonとは見なされない傾向があるが。 例えば某所で話題になっていたInstance PoolとかConnection Poolみたいなパターンになっちまう。
324 名前:デフォルトの名無しさん [2005/06/25(土) 02:27:55 ] >>323 だからどうしたんだよ。余計なレスつけんなアホ。
325 名前:234 mailto:sage [2005/06/25(土) 02:28:33 ] >>323 Poolのようなものならば、PoolManagerが欲しい気がしますね。Singletonの。
326 名前:デフォルトの名無しさん [2005/06/25(土) 02:31:24 ] >>325 お。冴えてるやん。 すると、ダンマリ決め込んでる>>311 が回答すべき内容が見えてくる・・・はず・・・なんだが・・・なんともはや
327 名前:デフォルトの名無しさん mailto:sage [2005/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 名前:デフォルトの名無しさん [2005/06/25(土) 02:32:55 ] 一向にまとまる気配が無いよ>デザパタ こんなのがコミュニケーションツールでいいんですか?>デザパタ 人によって使い方違ってるじゃないですか?>デザパタ 職場でもこんな戦いをしなきゃいけないんですか?>デザパタ
329 名前:326 [2005/06/25(土) 02:33:17 ] あぁーあ。せっかく回答が見えかけた(つか見えた)のに、 また訳わかんない主張系の人が、スレを混沌に導く・・・・・・もう飽きたから寝る。
330 名前:デフォルトの名無しさん [2005/06/25(土) 02:33:49 ] >>327 つか、マジで本スレ帰れってw
331 名前:デフォルトの名無しさん [2005/06/25(土) 02:34:50 ] >>329 お れ の せ い に な る の は な に か ち が う き が す る ! (笑)
332 名前:234 mailto:sage [2005/06/25(土) 02:40:17 ] >>327 ただの好き嫌いの問題であれば、ぼくの>>296 の主張はあながち ウソでもなかったようですね。 ちなみにそれによっていちいちgetInstance()を書かなければならないことを あなたは面倒であると考えたことはないのでしょうか?
333 名前:259 mailto:sage [2005/06/25(土) 02:41:23 BE:189645293- ] >>329 何に対する回答だ??回答以前に問題が明確でないんだよ。論点あちこち行ってるじゃん。
334 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 02:42:40 ] こっちの方が盛り上がってるのがウケル。 こっちをデザパタスレにしようよ。
335 名前:寝ぼけまなこでレス mailto:sage 今日のおネグは赤 [2005/06/25(土) 02:44:06 ] >>333 >>311
336 名前:寝ぼけまなこでレス mailto:sage しかもシースルー [2005/06/25(土) 02:45:15 ] >>334 偽デザパタスレ
337 名前:寝ぼけまなこでレス mailto:sage だってあついんだもん [2005/06/25(土) 02:49:49 ]
338 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 02:51:09 ] 厨房の行動パターン ・メール欄に文章
339 名前:259 mailto:女なのか、そうなのか!? sage [2005/06/25(土) 02:51:15 BE:224765748- ] >>335 static管理したらクラスの役目がわかりにくくなるって? インターフェースが同じなら変わらないだろ。論点にもなりゃしないさ。
340 名前: mailto:sage あ、instanceできちゃう・・・ [2005/06/25(土) 02:52:01 ]
341 名前:259 mailto:338はどうしてこうも野暮なんだ sage [2005/06/25(土) 02:53:01 BE:189645293- ] ム板にもIDキボンヌ
342 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 02:53:21 ] >>339 >>323 , >>325-326
343 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 02:54:48 ] >341 お前そんなんだからいつまでたっても0ポイントなんだよ。
344 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 02:55:58 ] で、アンチの反証は?
345 名前:334 mailto:sage [2005/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 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 02:58:56 ] >>345 GJ.
347 名前:デフォルトの名無しさん [2005/06/25(土) 03:00:55 ] >>334 だからデザパタスレなんて本来はその存在の可否に関する 議論の方がもりあがってたんだってば。 デザパタ自体はシングルトン1つとっても意見はバラバラ。 コミュニケーションツールなんて夢のまた夢。 掲示板じゃ自由に言えるけど、会社じゃ適用に至る明確な理由が必要になる。 そこでデザパタが必要である理由なんて説明できる奴がいるわけが無い。 昔からずっとこんな調子なんだよ。 信者とアンチの聖戦が一番盛り上がるんだから叩きだしたって誰かが追撃してくるんだよ。 構図はいつも 「オブジェクト指向が理解できなくて、デザパタに逃げてきた馬鹿」VS「オブジェクト指向原理主義者」
348 名前:259 mailto:343はポイントよこせ sage [2005/06/25(土) 03:00:55 BE:568936499- ] >>342 Poolはわからんが、 インターフェースとドキュメント見りゃ動作が分かるってのが、あるべきクラス設計の姿だろ、 実装に複数のstatic変数使ったからって、それが崩れることがあるのか?
349 名前:259 mailto:sage [2005/06/25(土) 03:03:10 BE:126431036- ] >>347 >オブジェクト指向が理解できなくて、デザパタに逃げてきた馬鹿 アンチデザパタ派は何故いつもそう言う。 たとえば>>345 がオブジェクト指向を理解できていないように見えるのか? オブジェクト指向を理解しないとデザパタ理解できないぜ。
350 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 03:04:55 ] >>347 頭悪い議論で盛り上がるのはもう沢山。 だから隔離されてるんだよおまぃは
351 名前:234 mailto:sage [2005/06/25(土) 03:06:06 ] >>345 ああなるほど、そういう用例を考えると便利ですね。 でも、加工前にgetInstance()しなきゃいかんのはちょっとカッコ悪いですね。 普通のオブジェクトよりその点がちょっとダーティ。でも逃げ道は在るよ、 というところでしょうか。 >>347 > 構図はいつも > 「オブジェクト指向が理解できなくて、デザパタに逃げてきた馬鹿」 > VS「オブジェクト指向原理主義者」 ぼくはどっちでもないとおもいます。
352 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 03:07:27 ] 構図はいつも、「自作自演するアンチ」vs「自作自演するアンチアンチ」
353 名前:234 mailto:sage [2005/06/25(土) 03:07:55 ] そろそろ イマドキDIだからSingletonなんかつかわないぜ(プ とか誰か言うのかと思ってたらそうでもなかったですね
354 名前:234 mailto:sage [2005/06/25(土) 03:08:24 ] >>352 ぼくは自作自演なんかしてないもん(; ;)
355 名前:デフォルトの名無しさん [2005/06/25(土) 03:08:50 ] 基本的に意味不明。 説明汁。
356 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 03:09:47 ] なんだServiceLocatorの話か。
357 名前:259 mailto:sage [2005/06/25(土) 03:10:11 BE:393338887- ] >>351 待て待て、>>273 で継承を否定しておきながら、それはないだろ。 >>345 は継承なくては実現し得ないんだぞ。
358 名前:デフォルトの名無しさん mailto:sage [2005/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 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 03:11:41 ] どーでもいいですよ。 >>273 と>>351 で同じ仮定をしなければならない義理があるわけでもなし。 つか、同じ仮定をしつこく主張しつづけたら、議論は進まない。
360 名前:259 mailto:sage [2005/06/25(土) 03:13:02 BE:252860494- ] >>345 は継承による仕様変更の典型例だってことを言ってるのよ。 仕様変更に継承を用いることを肯定するなら、この問題は終結するはずなのだが。
361 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 03:13:10 ] >>358 >>271
362 名前:234 mailto:sage [2005/06/25(土) 03:13:46 ] >>357 ぼくはべつに継承を常に否定してるわけじゃないんですが。 不要な継承を否定してるだけです。 >>345 は、インタフェースを合わせるために必要な継承を巧みに使っている 例ですね。 まあ、実際にこういうtechniqueが実際にどれだけ必要になるかといえば、 疑問ですが。
363 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 03:13:49 ] >>360 じゃ終結って事で。
364 名前:デフォルトの名無しさん [2005/06/25(土) 03:13:56 ] >>349 少なくともお前は理解していないw オブジェクト指向云々に関する話題は>>345 には出ていない。 したがってお前はまぬけだ。 >オブジェクト指向を理解しないとデザパタ理解できないぜ。 これはまったくの嘘。 デザパタはオブジェクト指向なんてまったく知らない奴が作った物。 よっぽどのアホでもなきゃ騙されないけどねw 現にここにいる奴のほとんどが学生だろ? 言語は覚えたけど、プログラムが組めないってレベルの奴。 まあ、プログラマでもないのにいきなり現場にぶち込まれた奴が たくさんいるからこのレベルの奴だと色々模索するから 学校のお勉強に近いデザパタに妄信する奴がでてくるんだよね。 だけど、いくら勉強してもプログラムなんて組めるようにはならない。 図星だろ? くくくっ、プログラムの組み方が書いてある本が世にあるとよかったなぁw
365 名前:334 mailto:sage [2005/06/25(土) 03:14:07 ] >>347 あれ?アンチの人?おまいよく状況を知ってるなwwww そうなんだよ昔から相手を馬鹿にするだけで、ろくな議論しないんだよあのスレwww だからここを有益なところにしようw >デザパタ自体はシングルトン1つとっても意見はバラバラ。 >コミュニケーションツールなんて夢のまた夢。 コミュニケーションツールは確かに無理だねぇ。 書籍にしても著者によって捉え方が全然違う。 読んだ書籍によって、読み手も捉え方が異なってしまうし。 うーん、まあコーディングテクニック集ってとこなのかなぁ。
366 名前:デフォルトの名無しさん [2005/06/25(土) 03:14:58 ] なんだ、NGワードが増えてきたな。 携帯4っつ使ってレス付けてるのか(笑
367 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 03:16:18 ] □■□■□ 祝!秀ケツ ■□■□■
368 名前:234 mailto:sage [2005/06/25(土) 03:16:22 ] ああ、なるほど >>259 さんには、あのアダプタの適用も「仕様変更に際して用いられる 典型的なtechnique」なのか。 その辺が僕とは認識が違いますね。 まあ、仕様変更といっても色々ありますから、なんとも言えませんが、 Singletonのようなインスタンスが一つだけのクラスに、このようなアダプタを 噛ませることがベストな解である、というタイプの仕様変更って そんなに無い気がしますよ?
369 名前:259 mailto:sage [2005/06/25(土) 03:16:29 BE:112383528- ] 結局 >>234 は >>234 の質問から何を知りたかったわけ?
370 名前:デフォルトの名無しさん [2005/06/25(土) 03:17:13 ] いままでどおり、机に向かって勉強してればプログラムが組めるようになるとでも思ったか?学生諸君w ならないだろ?ざまーみろw死ぬまでくるしめw
371 名前:234 mailto:sage [2005/06/25(土) 03:17:53 ] >>369 まあ、こんだけスレも盛り上がってることですし、いいじゃないですか(w
372 名前:334 mailto:sage [2005/06/25(土) 03:19:03 ] >>351 そですね。私の理解としては逃げ道つくるぐらいですかね。 開発してる時とかにメソッド呼ぶ前に、ログをとるデコレータクラスとかよく作ります。 そういった面で扱いやすいってだけですかね。 他にもメリットはあるかもしれませんが。 >でも、加工前にgetInstance()しなきゃいかんのはちょっとカッコ悪いですね。 ↓これでどうでしょう・・・。一行にしてみました。だめですか・・・。 Singleton s = new TuikaKinouSingleten(Singleton.getInstance());
373 名前:デフォルトの名無しさん [2005/06/25(土) 03:19:53 ] >>369 たぶん、getInstance()にパラメータつけるより getFoo(), getBar()の方がいい、とか、 それよりも static methodの方がもっとシンプル (継承できないけど継承は仕様変更の手段とすべきではない) とか。じゃねぇ〜の。いい加減寝るぞ
374 名前:259 mailto:sage [2005/06/25(土) 03:22:05 BE:393338887- ] >>368 >Singletonのようなインスタンスが一つだけのクラスに、このようなアダプタを >噛ませることがベストな解である、というタイプの仕様変更って >そんなに無い気がしますよ? ベタベタだがたとえばウィジットを生成する Factory。プラットフォームによって切り替え。 そんなにワサワサと例は出せないが。 逆に仕様変更のない Singleton は Singleton である必要がない気がする。 それこそ Utility 的な。 >>371 まぁそうだなw
375 名前:デフォルトの名無しさん [2005/06/25(土) 03:22:10 ] 正直、アンチの俺の意見としても継承の悪用は止めたほうがいいといっておく。
376 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 03:26:32 ] そもそもUtilityクラスとは、オブジェクト指向設計の放棄である (とりあえずそこまでクラス化するゆとりがないとか含む) である事を指摘しておこう。
377 名前:259 mailto:sage [2005/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 mailto:sage [2005/06/25(土) 03:39:14 ] >>377 「全ての問題は間接参照をはさめば解決する」という Andrew Koenigの言葉を思い出すような例ですね(w
379 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 05:35:21 ] ・グローバル変数はダメ ・Singletonはダメ ・デザパタなんか誰も使っていない、普及していない とほざく奴はJavadWebアプリの業務をやったことないだけだろ。 Javaではグローバル変数なんて概念はないし Singletonはリクエストのたびにオブジェクト生成されるのを 防ぐために普通に使われるし(Factoryにすることも多い) デザパタは使わないとスパゲッティ化してどうにもならなくなる ってぐらいに当たり前のように使われている。 自分の知っている狭い世界だけで使ってないからって断言するな。クズ。
380 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 07:56:46 ] そもそもそんなそうちょうに、 なにあたりまえのことりきせつしてるの? このすれは、 ていどのひくいひとがひっしにかんがえた どうしようもなくていどのひくいねたを かくりするすれだよ(わらい
381 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 07:57:55 ] そもそもそんなそうちょうに、 なにあたりまえのことりきせつしてるの? このすれは、 ていどのひくいひとがひっしにかんがえた どうしようもなくていどのひくいねたを かくりするすれだよ(わらい