「デザインパターンって、○○のようなもんだよ」
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG何にたとえて説明してる?
「そのココロは」的な解題があるとうれしいが、一言レスでもいいっす。
デザインパターンそのものについてだけでなく、派生的・関連するネタについての喩えも歓迎。
00021
NGNG「デザインパターンはバレーボールの“Bクイック”みたいなもんだ」
と言ってる。
「ある決まった攻撃パターンに“Bクイック”という名前を付けて、
それをチームみんなが知ってることで、効率が格段に上がるんだ。
試合中に“お前はダミーとしてスパイク打つふりしろ、お前は…”って
いちいち布陣を説明するより“次はBクイックな”って一言で言える方が
ずっと便利だし、正確だろ?
同じように、よくありがちな設計パターンに、GoFっていう偉い奴らが
名前を付けたわけ。それをみんなが知ってれば、いちいち説明しないでも
“ここはCompositeパターンを適用して…”と一言で正確に伝わる。
便利だろ?」
ずっとこれで説明して特に不都合はなかったんだけど、新しいネタが欲しいっす。
0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNG鶴翼の陣形!とか言うわけですか(^^;;;;;
ていうか、喩えというよりも、Bクイックや鶴翼ってのもまた
それぞれの分野におけるデザインパターンの一種
そのものなんだよね。実際に使いこなせるほど
みんなが訓練済みだとまでは言えないけど、
でも名前くらいはみんな知っている。
新ネタは、むしろ要らないんじゃないかな。
喩えを使うまでもなく人々に理解して貰えてるんだから、
完璧に目的はたしてるじゃん。
というわけで、円満に、
ーーーーしゅーりょーーーーー
…かな?
0005デフォルトの名無しさん
NGNG>GoFっていう偉い奴ら
秀吉みたいなアイデアマンが、後になってから
新しいパターンを続々考案したりも、するけどな(わら
水攻めパターンとか。
秀吉の手は、道具(わら)さえ揃っていれば
実行することそのものはあんまりしんどくない
っていう辺りも、デザインパターンの要件を満たしてる
だろうな。超人的働きをしなくても使える作戦。
秀吉は名アーキテクトだったと言えよう。
0006デフォルトの名無しさん
NGNGhttp://www.hyuki.com/dp/cat_index.html
0007デフォルトの名無しさん
NGNG# ちょっと回りくどい気がしないでもないけど...
それよりは個々のパターンの適用例をGoFのものより
もっと卑近でシンプルなものを複数挙げて説明したほうが
イメージが湧きやすいと思う。
GoFの例は特殊とはいわないまでも(個人的に)馴染みの浅いものが多かったので。
0008デフォルトの名無しさん
NGNG00091
NGNG>>4-7
いや、パターンの意味は分かってても、
ソフトウェア工学的な“デザインパターン”というテクニカルターム(藁
とリンクしてない御仁は(自分の周辺には)多くてですね、
・でざいんぱたーんって何ですかぁ〜な後輩とか、
・がんばってGoF本買って読んでみたけどサパーリわからん
→デザインパターンって何か知らんが難しそうで,とても適用できない
と思ってる上司とか(*こっちの方が重要)
に、「別に大したことないんだよ」と心理的バリアを取り除いてあげたい
ってのが目的。
いきなり具体的なパターンについて説明するより、喩えで概念を説明する
ほうがフィットする場合があるかと思うですよ。
「デザインパターンとはパターンである」で充分といえば充分なんだけど、
喩えのバリエーションが知りたいぞと。みんなどうやって説明してるんかな
という興味。
>>4
「(デザイン)パターンとは既にある何か一連のものに名前を付けることであって、
ソフトウェア特有のものではない」
か。御意。
>>5
確かに、デザインパターンについても次々と新作(?)が現れてますな。
>>6
これはある程度分かってないと笑えないんじゃないかな?
分かってる人には非常に(・∀・)イイ!! けど。
結城のデザインパターン本は評判いいみたいだね。
>>7
新ネタがほすぃ〜
0010名無しさん@お腹いっぱい。
NGNGないって考えて今勉強中。これって間違ってますか?>>1-9
0011デフォルトの名無しさん
NGNG色々なスポーツにカウンターってものはあるが、それぞれ実装は違う。
だけど、相手を引き込んで逆襲する点では同じだ、とか。
違うか。まあいいや。
0012デフォルトの名無しさん
NGNGそりゃまあ、バレーはサービスとトスとアタックしかないけどね。
0013名無しさん@お腹いっぱい。
NGNG子クラスにおいてなにをするか違うだけだと思ってますが、
これって間違ってますか?>>1-12 (10除く)
親クラスのメソッドがまず呼ばれてその処理中に子クラスの
処理を呼び出すのは一緒だと思うんですが。。。
0014デフォルトの名無しさん
NGNG0015デフォルトの名無しさん
NGNG0016デフォルトの名無しさん
NGNG0017デフォルトの名無しさん
NGNG0018デフォルトの名無しさん
NGNGそれに付け加え、お前たちを我々の文化に従属させる。抵抗しても無意味だ。
0019デフォルトの名無しさん
NGNGカコイイネ。
つづききぼんぬ。
00201
NGNGんー…確かにそのとおりだけど、それって余り本質的でないような気がする。
「Javaには条件分岐はif~then~else と switch~case と while/until(節)しかない」
からといって、それが
「アルゴリズムを学ぶのが簡単である理由」にはならないって感じか。違うか。
ていうか、「継承と合成の組み合わせしかない」から何なんだろう?が分かってません。スマソ。
>>11
(・∀・)イイ!!
自分の“Bクイック”説明ではプロジェクト内での共通言語としてのメリットに
重きを置いてるけど、“カウンター”は「デザインパターンとは(一般的にいう)
テンプレートである」ということが分かる。
こうやっていろんな喩えを使うことで、デザインパターンのいろんな側面を
明確に伝えることができるんだな。∴もっといろんな喩えが知りたい。
>>13
Template Method パターンはより汎用的で、
それを応用したのがFactory Method パターンじゃないっけ?
(>>14と同じこと言ってますが)
Factory Method パターンの中には Template Method パターンと
同じ構造が含まれてるはず。(たしかProduct側;Factory側もそうだっけ)
ついでに、使用する側で
AbstractFactory factory = new SomeConcreteFactory();
になるのが Factory Method パターンで、
AbstractFactory factory = AbstractFactory.getFactory(クラス名);
になるのが Abstract Factory パターン(だとおもう)。
えーと、今後は名無しさんで発言します。
002113
NGNG只今、GOFのお勉強中でして、TempleteMethodを覚えて初めて、
Javaのabstractクラスの使い方を覚えたところのヘタレです。
AbstractFactoryの使い方はまだやってなかったので上で書いて
頂いたことを元に勉強します。
ありがとうございました。
10で書いたことは何の意味もないことですね。
継承、合成を組み合わせて初めて効果が出てくるところは、
分岐やループと同じかもしれませんね。
制御構文=継承、合成
アルゴリズム=個別パターン
???=複合パターン だとするなら
???のところには何が入るのでしょうね
頭まったく動いてません。今日はもう眠いのでもう寝ます。
0022デフォルトの名無しさん
NGNG0023デフォルトの名無しさん
NGNGソノトオリなんだけど、それはパターンの話をするときには
分解しすぎっすね。砂漠で風紋の綺麗さを語ろうとしてるときに
砂粒1つづつの話をおっぱじめるようなもんで。
デザパタを考えることってのは、
単細胞生物と多細胞生物の差を考えること
じゃないかと思う。
#こらそこ。どっかで聞いた話だ、とか言うな(わら
個々の細胞が役割分担して然るべきレイアウトを取ることで
一個の生物(=アプリ?)が成り立つ、と。
体内のあちこちには、色んな細胞のレイアウトのパターンが存在する、と。
血管張り巡らすぞパターンとか、免疫パターン(??)とか。
心臓は心臓の、胃は胃の、それぞれのパターンがある、と。
どんな細胞の組み合わせ方をされているか?によって
その臓器を心臓とか血管とか呼ぶわけで。
0024デフォルトの名無しさん
NGNG(あ。バレーでも同じだな。すまん)
相談し、次はこの作戦でやろう!と山を張る。
やってみる。
山が当たったらごーーーーーーる!
山が外れたら鬱ーーーーー
いや、山の話をしたかったんです(わら
デザパタってのは、1つの柔軟性を犠牲にして
別の柔軟性を得る、という節が有るので、
「山をハズしたら」ひどい事になる、ってのは
確かに言えるんだよね。
なので、設計ミスに対するリスク回避には、全然ならないんだよね。
一方それより下流のリスクは当然緩和してくれるけど。
つまり実装のリスク。予めBクイックなりをトレーニング
して身につけることで、実装リスクは下がるわけだ。
いつBクイックを使うべきか?の判断へのリスクか変わらないけど。
0025デフォルトの名無しさん
NGNG共通の用語を使って議論しやすくなることで、
設計リスクも下がるのでは
と希望的観測に基づく発言
0026デフォルトの名無しさん
NGNG(・∀・)イイ!!
ある意味そのとおりかも。んでもおいらただ絵が載ってるだけのしか見たこと無いんだけど、あれって文脈というかシチュエーション(プーッ)まで言及してるっけ?
0027デフォルトの名無しさん
NGNG「エイト」とか「逆エイト」とかやらされた(多分Bクイックみたいなもの)
でもバスケ初心者だったからとりあえず形を真似るだけだったのね。試合と
かでも使ってたけど、いまいち効果が分からなかった。
でも大学の授業で久々にバスケやったときにどうやったら相手のディフェンス
を振り切れるか?って試行錯誤していたら実はあの時のエイトや逆エイトが非
常に効果的だったって事が分かったのよ。
デザインパターンも同じだと思う。経験が少ないときに読んでもなにがしたいの
かよく分からないし、暗記してもほとんど役に立たないと思う。
0028デフォルトの名無しさん
NGNG> AbstractFactory factory = new SomeConcreteFactory();
>になるのが Factory Method パターンで、
> AbstractFactory factory = AbstractFactory.getFactory(クラス名);
>になるのが Abstract Factory パターン(だとおもう)。
違う。AbstractFactoryはこうだ。
AbstractFactory factory = new ConcreteFactory();
foo.setFactory(factory);
Bar bar = foo.createBar();
Factoryオブジェクトを外から提供するのがみそ
0029デフォルトの名無しさん
NGNG将棋に例えて、矢倉、振り飛車、穴熊っていう方が近いね。
0030デフォルトの名無しさん
NGNGまぁそれは、スポーツのBクイックとかとも同じことだな。
実際に盤に置かれた駒の配置や
実際にある瞬間の選手とボールの位置関係とかが
「実装」になるわけで。
ただ、失敗する可能性もある、という意味では
スポーツの喩えのほうがより生々しいが(わら
0031デフォルトの名無しさん
NGNGおぉ、そうだったのか。逝ってきます。
Abstract Factoryパターンで初めて Class.forName()メソッドを知って感動したんで、
そこが肝だとばかり思いこんでた。
実務で
個々の業務(いわゆる個別のプログラム)に対応する外部設定ファイル(iniみたいなの)を用意して、
各ビジネスロジックとそれにフィットする Factory クラス(パス)を記述
↓
Abstract Factory パターンを使った汎用アプリケーション作成
(外部設定ファイルに記述されたFactoryクラスをClass.forName(〜)で生成)
↓
数個のバッチ + 十数個の画面 + 百数十本の帳票に対して
アプリケーションは1本でOK
↓
生産性高い&メンテ楽
↓
(゚д゚)ウマー
なんてことやってたんすよ。
0032デフォルトの名無しさん
NGNG違うだろ、将棋にたとえたら「ダンスの歩」「つぎ歩」とか「端歩攻め」とかの
*手筋*だろ。
0033デフォルトのやる気なし
NGNG「定石」は囲碁の用語で、将棋なら、「定跡」が正しい
とツッコミを入れておく。
0034デフォルトの名無しさん
NGNG>>32
おれもそう思う。
守備陣形は全体における一部分って感じに、形が決まってるから、
どっちかってゆーと、フレームワークって例えの方が
あってると思う。
0035デフォルトの名無しさん
NGNGインターフェースを使った同一視が肝
あとは↑を使っていろんなパターンを展開している
あってる?
0036デフォルトの名無しさん
NGNG「デザインパターンってObject Orientedのようなもんだよ」
かと思った。
0037デフォルトの名無しさん
NGNGじゃだめなん。とか
0038デフォルトの名無しさん
NGNG0039無名λ式
NGNG0040デフォルトの名無しさん
NGNGhttp://www.hyuki.com/dp/cat_index.html
いいっすねえ(^^
0041デフォルトの名無しさん
NGNG初めて知った、
(・∀・)イイ!!
0042デフォルトの名無しさん
NGNGなんか全部同じだぞ
0043u
NGNG0044Delギコ
NGNG( ゚Д゚)< >>40 >>6でガイシュツだ
_φ_⊂)__ \_______________
/旦/三/ /|
| ̄ ̄ ̄ ̄ ̄| |
|愛媛みかん|/ ,
 ̄ ̄ ̄ ̄ ̄
Λ Λ / ̄ ̄ ̄ ̄ ̄
(゚Д゚ )< デザパ勉強中
_φ_⊂)__ \_____
/旦/三/ /|
| ̄ ̄ ̄ ̄ ̄| |
|千葉ピーナッツ|/
 ̄ ̄ ̄ ̄ ̄
■ このスレッドは過去ログ倉庫に格納されています