〔隔離〕デザインパターンは本当に必要か?〔スレ〕
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2005/06/21(火) 19:09:560323デフォルトの名無しさん
2005/06/25(土) 02:26:57実は、Singletonってインスタンスが2つ以上あってもいいんだよね。
つか2つ以上生成した時点で、狭義のSingletonとは見なされない傾向があるが。
例えば某所で話題になっていたInstance PoolとかConnection Poolみたいなパターンになっちまう。
0324デフォルトの名無しさん
2005/06/25(土) 02:27:55だからどうしたんだよ。余計なレスつけんなアホ。
0326デフォルトの名無しさん
2005/06/25(土) 02:31:24お。冴えてるやん。
すると、ダンマリ決め込んでる>>311が回答すべき内容が見えてくる・・・はず・・・なんだが・・・なんともはや
0327デフォルトの名無しさん
2005/06/25(土) 02:32:05デザパタとか関係なく好き嫌いの問題でしょ、単に。
漏れは嫌だけど。
↓こんなコード書いてくるチームメンバがいたらはったおしてやるけどね。
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;}
}
0328デフォルトの名無しさん
2005/06/25(土) 02:32:55こんなのがコミュニケーションツールでいいんですか?>デザパタ
人によって使い方違ってるじゃないですか?>デザパタ
職場でもこんな戦いをしなきゃいけないんですか?>デザパタ
0329326
2005/06/25(土) 02:33:17また訳わかんない主張系の人が、スレを混沌に導く・・・・・・もう飽きたから寝る。
0330デフォルトの名無しさん
2005/06/25(土) 02:33:49つか、マジで本スレ帰れってw
0331デフォルトの名無しさん
2005/06/25(土) 02:34:50お れ の せ い に な る の は な に か ち が う き が す る ! (笑)
0332234
2005/06/25(土) 02:40:17ただの好き嫌いの問題であれば、ぼくの>>296の主張はあながち
ウソでもなかったようですね。
ちなみにそれによっていちいちgetInstance()を書かなければならないことを
あなたは面倒であると考えたことはないのでしょうか?
0334デフォルトの名無しさん
2005/06/25(土) 02:42:40こっちをデザパタスレにしようよ。
0337寝ぼけまなこでレス
2005/06/25(土) 02:49:490338デフォルトの名無しさん
2005/06/25(土) 02:51:09・メール欄に文章
0341259
NGNG0342デフォルトの名無しさん
2005/06/25(土) 02:53:21>>323, >>325-326
0343デフォルトの名無しさん
2005/06/25(土) 02:54:48お前そんなんだからいつまでたっても0ポイントなんだよ。
0344デフォルトの名無しさん
2005/06/25(土) 02:55:580345334
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だとそれができなくなるぐらいではないだろうか。
まあ個人の好みで使い分ければよいのではないかと。
0346デフォルトの名無しさん
2005/06/25(土) 02:58:560347デフォルトの名無しさん
2005/06/25(土) 03:00:55だからデザパタスレなんて本来はその存在の可否に関する
議論の方がもりあがってたんだってば。
デザパタ自体はシングルトン1つとっても意見はバラバラ。
コミュニケーションツールなんて夢のまた夢。
掲示板じゃ自由に言えるけど、会社じゃ適用に至る明確な理由が必要になる。
そこでデザパタが必要である理由なんて説明できる奴がいるわけが無い。
昔からずっとこんな調子なんだよ。
信者とアンチの聖戦が一番盛り上がるんだから叩きだしたって誰かが追撃してくるんだよ。
構図はいつも
「オブジェクト指向が理解できなくて、デザパタに逃げてきた馬鹿」VS「オブジェクト指向原理主義者」
0348259
NGNGPoolはわからんが、
インターフェースとドキュメント見りゃ動作が分かるってのが、あるべきクラス設計の姿だろ、
実装に複数のstatic変数使ったからって、それが崩れることがあるのか?
0349259
NGNG>オブジェクト指向が理解できなくて、デザパタに逃げてきた馬鹿
アンチデザパタ派は何故いつもそう言う。
たとえば>>345がオブジェクト指向を理解できていないように見えるのか?
オブジェクト指向を理解しないとデザパタ理解できないぜ。
0350デフォルトの名無しさん
2005/06/25(土) 03:04:55頭悪い議論で盛り上がるのはもう沢山。
だから隔離されてるんだよおまぃは
0351234
2005/06/25(土) 03:06:06ああなるほど、そういう用例を考えると便利ですね。
でも、加工前にgetInstance()しなきゃいかんのはちょっとカッコ悪いですね。
普通のオブジェクトよりその点がちょっとダーティ。でも逃げ道は在るよ、
というところでしょうか。
>>347
> 構図はいつも
> 「オブジェクト指向が理解できなくて、デザパタに逃げてきた馬鹿」
> VS「オブジェクト指向原理主義者」
ぼくはどっちでもないとおもいます。
0352デフォルトの名無しさん
2005/06/25(土) 03:07:270353234
2005/06/25(土) 03:07:55イマドキDIだからSingletonなんかつかわないぜ(プ
とか誰か言うのかと思ってたらそうでもなかったですね
0355デフォルトの名無しさん
2005/06/25(土) 03:08:50説明汁。
0356デフォルトの名無しさん
2005/06/25(土) 03:09:470358デフォルトの名無しさん
2005/06/25(土) 03:11:21calss 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> {}
...
テンプレートかますとそれなりに便利だが。
使い道がいまいち謎だ。
0359デフォルトの名無しさん
2005/06/25(土) 03:11:41>>273と>>351で同じ仮定をしなければならない義理があるわけでもなし。
つか、同じ仮定をしつこく主張しつづけたら、議論は進まない。
0361デフォルトの名無しさん
2005/06/25(土) 03:13:10>>271
0362234
2005/06/25(土) 03:13:46ぼくはべつに継承を常に否定してるわけじゃないんですが。
不要な継承を否定してるだけです。
>>345は、インタフェースを合わせるために必要な継承を巧みに使っている
例ですね。
まあ、実際にこういうtechniqueが実際にどれだけ必要になるかといえば、
疑問ですが。
0363デフォルトの名無しさん
2005/06/25(土) 03:13:49じゃ終結って事で。
0364デフォルトの名無しさん
2005/06/25(土) 03:13:56少なくともお前は理解していないw
オブジェクト指向云々に関する話題は>>345には出ていない。
したがってお前はまぬけだ。
>オブジェクト指向を理解しないとデザパタ理解できないぜ。
これはまったくの嘘。
デザパタはオブジェクト指向なんてまったく知らない奴が作った物。
よっぽどのアホでもなきゃ騙されないけどねw
現にここにいる奴のほとんどが学生だろ?
言語は覚えたけど、プログラムが組めないってレベルの奴。
まあ、プログラマでもないのにいきなり現場にぶち込まれた奴が
たくさんいるからこのレベルの奴だと色々模索するから
学校のお勉強に近いデザパタに妄信する奴がでてくるんだよね。
だけど、いくら勉強してもプログラムなんて組めるようにはならない。
図星だろ?
くくくっ、プログラムの組み方が書いてある本が世にあるとよかったなぁw
0365334
2005/06/25(土) 03:14:07あれ?アンチの人?おまいよく状況を知ってるなwwww
そうなんだよ昔から相手を馬鹿にするだけで、ろくな議論しないんだよあのスレwww
だからここを有益なところにしようw
>デザパタ自体はシングルトン1つとっても意見はバラバラ。
>コミュニケーションツールなんて夢のまた夢。
コミュニケーションツールは確かに無理だねぇ。
書籍にしても著者によって捉え方が全然違う。
読んだ書籍によって、読み手も捉え方が異なってしまうし。
うーん、まあコーディングテクニック集ってとこなのかなぁ。
0366デフォルトの名無しさん
2005/06/25(土) 03:14:58携帯4っつ使ってレス付けてるのか(笑
0367デフォルトの名無しさん
2005/06/25(土) 03:16:180368234
2005/06/25(土) 03:16:22>>259さんには、あのアダプタの適用も「仕様変更に際して用いられる
典型的なtechnique」なのか。
その辺が僕とは認識が違いますね。
まあ、仕様変更といっても色々ありますから、なんとも言えませんが、
Singletonのようなインスタンスが一つだけのクラスに、このようなアダプタを
噛ませることがベストな解である、というタイプの仕様変更って
そんなに無い気がしますよ?
0370デフォルトの名無しさん
2005/06/25(土) 03:17:13ならないだろ?ざまーみろw死ぬまでくるしめw
0372334
2005/06/25(土) 03:19:03そですね。私の理解としては逃げ道つくるぐらいですかね。
開発してる時とかにメソッド呼ぶ前に、ログをとるデコレータクラスとかよく作ります。
そういった面で扱いやすいってだけですかね。
他にもメリットはあるかもしれませんが。
>でも、加工前にgetInstance()しなきゃいかんのはちょっとカッコ悪いですね。
↓これでどうでしょう・・・。一行にしてみました。だめですか・・・。
Singleton s = new TuikaKinouSingleten(Singleton.getInstance());
0373デフォルトの名無しさん
2005/06/25(土) 03:19:53たぶん、getInstance()にパラメータつけるより getFoo(), getBar()の方がいい、とか、
それよりも static methodの方がもっとシンプル (継承できないけど継承は仕様変更の手段とすべきではない)
とか。じゃねぇ〜の。いい加減寝るぞ
0374259
NGNG>Singletonのようなインスタンスが一つだけのクラスに、このようなアダプタを
>噛ませることがベストな解である、というタイプの仕様変更って
>そんなに無い気がしますよ?
ベタベタだがたとえばウィジットを生成する Factory。プラットフォームによって切り替え。
そんなにワサワサと例は出せないが。
逆に仕様変更のない Singleton は Singleton である必要がない気がする。
それこそ Utility 的な。
>>371
まぁそうだなw
0375デフォルトの名無しさん
2005/06/25(土) 03:22:100376デフォルトの名無しさん
2005/06/25(土) 03:26:32である事を指摘しておこう。
0377259
NGNG単にラッパーしただけな気もするが。ただの思い付きなんで落ち度があったら優しくつっこんで。
クラスAの実装自体のタイピングがめんどくさいけど。
class A{
static StrategySingleton s=StrategySingleton.instance();
static void invoke(){
s.invoke();
}
}
A.invoke();
>>375
悪用ってのがどんな例だかわからんが、肯定派からも言わせてもらうと、
GoF本でも継承の濫用はするな、って書いてあった。
いちいち新しい動作を定義するのに毎回クラスを継承してたんじゃ、クラス増えまくりだからな。
>>376
まぁたしかにそうだな。
基本演算と同じレベルで考えればいいんじゃないか、と思う。
さすがに基本演算までオブジェクト指向にすることもなかろうと。
0379デフォルトの名無しさん
2005/06/25(土) 05:35:21・Singletonはダメ
・デザパタなんか誰も使っていない、普及していない
とほざく奴はJavadWebアプリの業務をやったことないだけだろ。
Javaではグローバル変数なんて概念はないし
Singletonはリクエストのたびにオブジェクト生成されるのを
防ぐために普通に使われるし(Factoryにすることも多い)
デザパタは使わないとスパゲッティ化してどうにもならなくなる
ってぐらいに当たり前のように使われている。
自分の知っている狭い世界だけで使ってないからって断言するな。クズ。
0380デフォルトの名無しさん
2005/06/25(土) 07:56:46なにあたりまえのことりきせつしてるの?
このすれは、
ていどのひくいひとがひっしにかんがえた
どうしようもなくていどのひくいねたを
かくりするすれだよ(わらい
0381デフォルトの名無しさん
2005/06/25(土) 07:57:55なにあたりまえのことりきせつしてるの?
このすれは、
ていどのひくいひとがひっしにかんがえた
どうしようもなくていどのひくいねたを
かくりするすれだよ(わらい
0382デフォルトの名無しさん
2005/06/25(土) 13:31:42「デザパタ肯定≠オブジェクト指向」
なんて言う脳内仮定で煽ってんの?
オブ戦スレの馬鹿がTMPこそデザパタとか
勘違いして、逆の立場で煽ってるの?
0383デフォルトの名無しさん
2005/06/25(土) 13:53:14つか、「デザパタ自体、OOではない」らしいよ。奴にとって。
0384デフォルトの名無しさん
2005/06/25(土) 15:48:50じゃあ、君がデザパタがオブジェクト指向にのっとっていることを証明したまえ。
ちなみに前スレだとデザパタはオブジェクト指向とは違う流れで
それは新しい進化ということで決着がついていた。
0386デフォルトの名無しさん
2005/06/25(土) 16:10:07オブジェクト指向での設計を、「対象物の構造をそのままソースに反映させること」として
デザパタでの設計を、「パターンを用いてそれに当てはめること」とし、
オブジェクト指向とデザパタが根本的に設計理念の異なるものだということだった。
この主張の矛盾点を指摘する形では肯定派も否定派も
両者を納得させるまでにはいかず、煽りを繰り返すレスがついた。
はじめの主張が
「デザパタはオブジェクト指向では無い」
というところからはじまっているだけあって、アンチが主導権を握ってしまうのは仕方がないと思う。
0387俺は肯定派?
2005/06/25(土) 16:25:56> オブジェクト指向での設計を、「対象物の構造をそのままソースに反映させること」として
> デザパタでの設計を、「パターンを用いてそれに当てはめること」とし、
このあたりは既に俺の考えとは違っていて、
> オブジェクト指向とデザパタが根本的に設計理念の異なるものだということだった。
これは当たり前だと思っている
0388デフォルトの名無しさん
2005/06/25(土) 16:56:54>それは新しい進化ということで決着がついていた。
>それは新しい進化ということで決着がついていた。
>それは新しい進化ということで決着がついていた。
>それは新しい進化ということで決着がついていた。
0389デフォルトの名無しさん
2005/06/25(土) 17:44:18って思って欲しいのですか?
でオセロのソースでも晒すつもりですか?
おまいらは本当に進歩がないですね。
0390デフォルトの名無しさん
2005/06/25(土) 19:59:08>>389
まあ、そーゆースレだしね。適当に盛り上げといて。
0391デフォルトの名無しさん
2005/06/25(土) 21:02:46どっちかと言うとテンプレートライブラリに近い。
テンプレートライブラリ化出来ないレベルを
デザインパターンで扱うべきなんだけど、
GoFのやってる事は、気持ち悪いタイプの
馬鹿プログラマみたいだ。
0392デフォルトの名無しさん
2005/06/25(土) 21:53:35いくら明日予定が入って無いからって、そんなネタで暇つぶしの相手をみつようったってそうはいかない。
0393デフォルトの名無しさん
2005/06/25(土) 22:05:13脳内妄想ステキー
0394デフォルトの名無しさん
2005/06/25(土) 22:06:14今週のレスの付き具合を見るに、
>>391は毎日がエブリディもとい毎日が特別休日みたいだぞw
0395デフォルトの名無しさん
2005/06/25(土) 22:33:30てか、もういらない。
0396デフォルトの名無しさん
2005/06/25(土) 22:47:52それを「パターン」としてきっちり言語化したのはGoF以降だろう。
で、GoFのパターンの源はSmalltalkやC++での経験の蓄積が
元になっていると。
今では「デザインパターン」の語がOOPの領域以外にも
広げられてたとえば「モナド」は高階関数のデザパタの
一つ、と言ったりするわけだな。
だが、ここの厨がいってるような、デザパタはテンプレートで
オブジェクト指向とは関係ない、とかってのは、激しく
思い違いもいいところだ。
前橋、わかったのか?
0397デフォルトの名無しさん
2005/06/25(土) 22:48:05毎日が出社とかも考えろ!!
ボケ、糞、カス、キチガイ、狂信者。
0398デフォルトの名無しさん
2005/06/25(土) 22:49:43関係ないけどオブジェクト指向でも使えるのがデザインパターンなんで、
オブジェクト指向と関係ないちゅーのも、正しい物の見方だよ。
0399デフォルトの名無しさん
2005/06/25(土) 22:51:23「パターン」としてきっちり言語化したのはGoF以降。
歴史は覆せないよ。
0400デフォルトの名無しさん
2005/06/25(土) 22:55:30はぁ?
だからなんだってんだよ、GoFがオブジェクト指向的要素として
デザパタを提唱したんなら、オブジェクト指向の一部か否かてな
議論もなりたつが、C言語のデザインパターンだって成り立つんだから、
オブジェクト指向とは関係ないね。
で、GoFが出したカタログは、オブジェクト指向を破壊するデザインパターン
が多すぎるから誤解招いてるんだろ。糞。
0401デフォルトの名無しさん
2005/06/25(土) 23:01:25>オブジェクト指向を破壊するデザインパターン
相変わらず具体性ないねw
0402デフォルトの名無しさん
2005/06/25(土) 23:02:26デザインパターンが意識され始めたのは、
オブジェクト指向による設計に関する経験から
来ているのは事実なんだから。
そこで「デザインパターン」という、
「ライブラリ」なんかとは抽象レベルの違う概念が
意識されてきたわけで、あとから考えれば、
コレもアレもパターンてのは当然ある。
結局おまいらのいってるのは「CでもOOPできるYO」
ってのと同じく「Cでもデザパタできるよ」って言って
るだけで、吠えてみたところで、オブジェクト指向に
とってデザパタが重要なことに変わりはない。
0403デフォルトの名無しさん
2005/06/25(土) 23:03:310404デフォルトの名無しさん
2005/06/25(土) 23:04:19暑さのためおかしくなった不審人物がが大喜びではしゃいでます。
一般の方は刺されないように退避して下さい。
(隣組回覧)
=================================================================
0405デフォルトの名無しさん
2005/06/25(土) 23:08:510406デフォルトの名無しさん
2005/06/25(土) 23:09:29それでも構ってもらえたと勘違いして、
大喜びで自作自演レスしまくるとは、相当なもんだよな。
きっと、人との交流に激しい飢餓感を持ってるのだろうな。
もまいさぁ、いい加減、額に汗して働けよ。
俺今日、土曜出勤でエアコン効いてない室内で熱中症になりかかったんだぞ
0407デフォルトの名無しさん
2005/06/25(土) 23:21:341994年に標準化されたSTLが有るのに、
95年に書かれたデザインパターンをもって、
新しいってのはちょっと違うなぁと思うぞ。
0408デフォルトの名無しさん
2005/06/25(土) 23:45:04はぁ〜。GoF程度は読んどけよ。まったく。
あれのパターンの元ネタはSmalltalk-80やMacAppやその他。
この期に及んでSTL持ち出すのも馬鹿丸出し。
0409デフォルトの名無しさん
2005/06/25(土) 23:50:32>>俺今日、土曜出勤でエアコン効いてない室内で熱中症になりかかったんだぞ
どうやら >>406 にとって「働いている・働いていない」の基準とは、
室内のエアコンが「利いている・利いていない」って所らしいな。
0410デフォルトの名無しさん
2005/06/25(土) 23:56:42デザパタでの設計がオブジェクト指向にのっとっているかは別問題。
やっぱりオブジェクト指向とは考え方が違う。
オブジェクト指向で似通った設計を集めてそれをパターンにして当てはめたって
それはオブジェクト指向での設計にはならない。
0411デフォルトの名無しさん
2005/06/26(日) 00:20:29|
|
ぱくっ|
/V\
/◎;;;,;,,,,ヽそんなエサで
_ ム::::(,,゚Д゚)::| 俺様が釣られると思ってんのか!!
ヽツ.(ノ:::::::::.:::::.:..|)
ヾソ:::::::::::::::::.:ノ
` ー U'"U'
0412デフォルトの名無しさん
2005/06/26(日) 03:02:48オブジェクトであるパーツを再利用するとオブジェクト指向じゃねえって意味わかんないんですけど。
で、デザパタのどこがクソ設計なのか具体的に挙げてもらえますか?そしてそれはどう設計されるべきですか?
0413デフォルトの名無しさん
2005/06/26(日) 03:08:07>C言語のデザインパターンだって成り立つんだから、オブジェクト指向とは関係ないね。
へぇ、オブジェクト指向って言語依存なんだ。てっきり設計の指針みたいなもんだと思ってたが。
プログラムできない人の考えることはオリジナリティがあっていいねw
0414デフォルトの名無しさん
2005/06/26(日) 03:24:06それは実装の話。
設計段階でオブジェクト指向では対象物をそのままソースに移すことが重要。
その結果、同じクラスが出てきたら、再利用できるできないを検討すればいい。
パターンに当てはめてしまうデザパタとはやはり違う。
0415デフォルトの名無しさん
2005/06/26(日) 03:38:54という前提が異常。
0416デフォルトの名無しさん
2005/06/26(日) 03:40:25じゃあ、パターンっていつ使うんだよw
0417デフォルトの名無しさん
2005/06/26(日) 03:58:57煽りじゃなくってこれはいっとかなきゃいけないと思うので書くが、キミ全く判ってないよ。
デザパタで語られるパターンてのはジェネリックかつプリミティブ。
STLで言ったら、vectorとかlistみたいなもんだ。
「クラスのメンバーにvectorがあったらオブジェクト指向じゃない」なんて命題は有り得ないわけよ。
vectorはプリミティブなテンプレートクラスであって、これによって設計がOOPかどうかを判断するなんて全くナンセンス。
まず、GoF本くらい読んで「理解して」から書き込みしなよ。
0418デフォルトの名無しさん
2005/06/26(日) 04:23:16なんでそこで実装の話がでちゃうのか理解不能。
余計わからない。
少なくとも本スレからこのスレでデザパタのパターンの話をしている人間も
パターンに当てはめる形で設計をしている。
これは「〜パターンが使えそうですね。」的な発言も見られることから明らか。
わけのわからないことを言わないでもらいたい。
0419デフォルトの名無しさん
2005/06/26(日) 04:24:580420デフォルトの名無しさん
2005/06/26(日) 04:29:23ハイハイ、そこは重要な箇所じゃないでしょ?
くだらない煽り入れないでね。
ちゃんと↓に答えてね
少なくとも本スレからこのスレでデザパタのパターンの話をしている人間も
パターンに当てはめる形で設計をしている。
これは「〜パターンが使えそうですね。」的な発言も見られることから明らか。
わけのわからないことを言わないでもらいたい。
0421デフォルトの名無しさん
2005/06/26(日) 05:03:04っていう話?
■ このスレッドは過去ログ倉庫に格納されています