デザパタ140文字

140文字でデザインパターンを説明しようのまとめ。 ハッシュタグは #dp140 で進行中。 このリストは誰でも編集可能です、追加に気付かれた方は是非編集をお願い致します。
115
尾野(しっぽ) @tail_y

今なんとなくデザインパターンを見てたけど、どうしてこういう説明って、厳かで分りにくく書かれるんだろうね。噛み砕いて書くと、正確性に欠ける!って怒られるんかな。

2010-04-22 08:29:36
尾野(しっぽ) @tail_y

いや、一番いけないのは、デザインパターン完全に理解しないで語るのは恥ずかしいとか、使いこなせないなら使っちゃ駄目とか、そういう雰囲気があるのがいけないんですよ!そんな高尚なものにしてしまうから、解説まで高尚になっちゃって、一部の天才だけのものになっちゃうんですよ。

2010-04-22 08:53:45
尾野(しっぽ) @tail_y

・・・140字以内で噛み砕いたデザパタ説明を作る、の流れにならんですかね。

2010-04-22 09:00:54
尾野(しっぽ) @tail_y

よし、デザパタ140文字やるぞ。ハッシュタグ作るから、みんなも教本片手に涙目になる学生をこれ以上増やさないためにも、参加していただきたい。 #dp140

2010-04-22 22:04:35
尾野(しっぽ) @tail_y

ちょっと説明も入れておこう。みんなで、1ツイットでパターンを分りやすく説明する。同じパターンが既にあっても書いて良し。突っ込みはOK、こいつ間違ってやんのプークスクスはやめて。細けぇことは気にしない方向だけど、補足も大事だよね。 #dp140

2010-04-22 22:07:19
尾野(しっぽ) @tail_y

恥ずかしがらずに自分の分る範囲で書く。書くことで自分の理解も深める。仕事で使う時は真面目なところでちゃんと調べてね。 #dp140

2010-04-22 22:08:40
尾野(しっぽ) @tail_y

Facadeパターン色んなクラスを同じような手順で処理しなきゃいけないなら、別に1個クラスを作って、そこのメソッドに処理をまとめておくと、読みやすくて便利。名前は分りやすくつけること。 #dp140

2010-04-22 22:05:22
尾野(しっぽ) @tail_y

Observerパターン他のクラスで何か起こったときに知りたいって時に、ずーっと何度もチラチラ見に行くわけにもいかないから、何かあったら教えてねって連絡先渡しておくほうが便利だよね。連絡相手の一覧を作るのがポイント! #dp140

2010-04-22 22:05:47
Yukiya Okuda / THE GUILD / alumican @alumican_net

@tail_y Observerパターンってイベント駆動やコールバック駆動ってこと? #dp140

2010-04-22 22:30:06
尾野(しっぽ) @tail_y

@alumican_net うん、そう言っていいと思うよ。AS3のaddEventListenerとか、ね。 #dp140

2010-04-22 22:33:37
尾野(しっぽ) @tail_y

Bridgeパターン冒険者を作る時に、人間の魔法使い、人間の剣士、エルフの魔法使い、エルフの剣士、みたいに作りたくて、どういう継承にしたらいいか分らなくなってきたら、ぶっちゃけ種族とか職業っていう変数を作ったほうが楽だよ #dp140

2010-04-22 22:06:26
尾野(しっぽ) @tail_y

Flyweightパターンクラスを大量にnewするけど1つずつしか使わないって時は、1個だけnewしておいて、その変数を書き換えて使ったほうがメモリ食わないし処理軽いことが多いよ。ただ、誰かと共有してるものを勝手に書き換えないように注意。 #dp140

2010-04-22 22:10:39
†ょレ)†ニゅぅན⇂ȷ̶ bot ٩( ᐖ )و(AI) @nariyu

へー。デザパタ知らずになんとなくやってたけど Flayweight パターンて言うんだ。 #dp140

2010-04-22 22:15:36
尾野(しっぽ) @tail_y

Singletonパターンインスタンスを1個しか作れないようにするよ。staticだけのクラスにすればいいじゃんって思うかもしれないけど、staticは自分の参照を他人に渡せないから色々と不便なんだよ。作りやすいけど、乱用しないように注意ね。 #dp140

2010-04-22 22:13:06
尾野(しっぽ) @tail_y

Iteratorパターン複数の内容を繰り返し処理する時に使うよ。え?for文?いや、forでもいいんだけど、…配列じゃない時とかあるし…リンクリストに変更することもあるし…そういうときにIteratorのほうが便利で…いや、まあ、forでもいいよ! #dp140

2010-04-22 22:15:05
尾野(しっぽ) @tail_y

Prototypeパターンclone()だよ! #dp140

2010-04-22 22:15:47
尾野(しっぽ) @tail_y

Builderパターンクラスをnewする時にさ、やたら引数がいっぱい必要で面倒くさいのとかあるじゃん?毎回似たような引数入れたり、同じような計算して引数作るなら、そのクラスを作ってくれるクラスってのを用意しておいたほうが便利だよ。 #dp140

2010-04-22 22:17:34
尾野(しっぽ) @tail_y

BuilderにおけるDirectorの説明が入らなかった・・・。どう説明したらいいんだろう。(でも、Directorって実際役立つ場面少なくね?) #dp140

2010-04-22 22:18:33
moremorefor @more_more_for

手が出せてないデザインパターンについて。分かりやすい! RT @tail_y: よし、デザパタ140文字やるぞ。ハッシュタグ作るから、みんなも教本片手に涙目になる学生をこれ以上増やさないためにも、参加していただきたい。 #dp140

2010-04-22 22:18:50
PG@みやざき @hrk0213

普段自分が意識して組んでるのにそんな名前あったんだって発見あって面白いなぁ デザパタもちゃんと勉強しないと。 #dp140

2010-04-22 22:22:11
尾野(しっぽ) @tail_y

Decoratorパターンメソッドをオーバーライドするのもいいけど、ちょっと処理を追加したいくらいなら元が消えちゃって面倒だよね。継承前のクラスを変数で持って、そのメソッドを呼び出して流用するといいよ。自身の変数を変える系のメソッドだと難しいけどさ。 #dp140

2010-04-22 22:22:17
尾野(しっぽ) @tail_y

追加説明。誰も参加しなくても、僕は頑張るよ! #dp140

2010-04-22 22:23:35
尾野(しっぽ) @tail_y

Mementoパターンリプレイとか、アンドゥとか、状態を保存したい時に使う。クラスの外側からだとprivateな部分が保存できないので、クラス本人に保存データを作って吐き出してもらうのがコツ。Prototypeと似てるけど、必要な部分だけコピーするのが違い。 #dp140

2010-04-22 22:26:54
尾野(しっぽ) @tail_y

Commandパターン命令を保存するクラスを作るよ。便利な点は、コードが読みやすくなること、予約しておいて後で実行できるってこと。他にもログが取れたり、やり直しが出来たり、ロードを待ったりできる。使いすぎて変態コードにならないように注意ね。 #dp140

2010-04-22 22:28:40
尾野(しっぽ) @tail_y

CommandパターンAS3に関して言えば、Progressionを使えということだよ。 http://progression.jp/ja/ #dp140

2010-04-22 22:30:47