デザパタ140文字

140文字でデザインパターンを説明しようのまとめ。 ハッシュタグは #dp140 で進行中。 このリストは誰でも編集可能です、追加に気付かれた方は是非編集をお願い致します。
115
尾野(しっぽ) @tail_y
今なんとなくデザインパターンを見てたけど、どうしてこういう説明って、厳かで分りにくく書かれるんだろうね。噛み砕いて書くと、正確性に欠ける!って怒られるんかな。
尾野(しっぽ) @tail_y
いや、一番いけないのは、デザインパターン完全に理解しないで語るのは恥ずかしいとか、使いこなせないなら使っちゃ駄目とか、そういう雰囲気があるのがいけないんですよ!そんな高尚なものにしてしまうから、解説まで高尚になっちゃって、一部の天才だけのものになっちゃうんですよ。
尾野(しっぽ) @tail_y
・・・140字以内で噛み砕いたデザパタ説明を作る、の流れにならんですかね。
尾野(しっぽ) @tail_y
よし、デザパタ140文字やるぞ。ハッシュタグ作るから、みんなも教本片手に涙目になる学生をこれ以上増やさないためにも、参加していただきたい。 #dp140
尾野(しっぽ) @tail_y
ちょっと説明も入れておこう。みんなで、1ツイットでパターンを分りやすく説明する。同じパターンが既にあっても書いて良し。突っ込みはOK、こいつ間違ってやんのプークスクスはやめて。細けぇことは気にしない方向だけど、補足も大事だよね。 #dp140
尾野(しっぽ) @tail_y
恥ずかしがらずに自分の分る範囲で書く。書くことで自分の理解も深める。仕事で使う時は真面目なところでちゃんと調べてね。 #dp140
尾野(しっぽ) @tail_y
Facadeパターン色んなクラスを同じような手順で処理しなきゃいけないなら、別に1個クラスを作って、そこのメソッドに処理をまとめておくと、読みやすくて便利。名前は分りやすくつけること。 #dp140
尾野(しっぽ) @tail_y
Observerパターン他のクラスで何か起こったときに知りたいって時に、ずーっと何度もチラチラ見に行くわけにもいかないから、何かあったら教えてねって連絡先渡しておくほうが便利だよね。連絡相手の一覧を作るのがポイント! #dp140
ツク郎くん™ @alumican_net
@tail_y Observerパターンってイベント駆動やコールバック駆動ってこと? #dp140
尾野(しっぽ) @tail_y
@alumican_net うん、そう言っていいと思うよ。AS3のaddEventListenerとか、ね。 #dp140
尾野(しっぽ) @tail_y
Bridgeパターン冒険者を作る時に、人間の魔法使い、人間の剣士、エルフの魔法使い、エルフの剣士、みたいに作りたくて、どういう継承にしたらいいか分らなくなってきたら、ぶっちゃけ種族とか職業っていう変数を作ったほうが楽だよ #dp140
尾野(しっぽ) @tail_y
Flyweightパターンクラスを大量にnewするけど1つずつしか使わないって時は、1個だけnewしておいて、その変数を書き換えて使ったほうがメモリ食わないし処理軽いことが多いよ。ただ、誰かと共有してるものを勝手に書き換えないように注意。 #dp140
なりたゆうすけ @nariyu
へー。デザパタ知らずになんとなくやってたけど Flayweight パターンて言うんだ。 #dp140
尾野(しっぽ) @tail_y
Singletonパターンインスタンスを1個しか作れないようにするよ。staticだけのクラスにすればいいじゃんって思うかもしれないけど、staticは自分の参照を他人に渡せないから色々と不便なんだよ。作りやすいけど、乱用しないように注意ね。 #dp140
尾野(しっぽ) @tail_y
Iteratorパターン複数の内容を繰り返し処理する時に使うよ。え?for文?いや、forでもいいんだけど、…配列じゃない時とかあるし…リンクリストに変更することもあるし…そういうときにIteratorのほうが便利で…いや、まあ、forでもいいよ! #dp140
尾野(しっぽ) @tail_y
Prototypeパターンclone()だよ! #dp140
尾野(しっぽ) @tail_y
Builderパターンクラスをnewする時にさ、やたら引数がいっぱい必要で面倒くさいのとかあるじゃん?毎回似たような引数入れたり、同じような計算して引数作るなら、そのクラスを作ってくれるクラスってのを用意しておいたほうが便利だよ。 #dp140
尾野(しっぽ) @tail_y
BuilderにおけるDirectorの説明が入らなかった・・・。どう説明したらいいんだろう。(でも、Directorって実際役立つ場面少なくね?) #dp140
moremorefor @more_more_for
手が出せてないデザインパターンについて。分かりやすい! RT @tail_y: よし、デザパタ140文字やるぞ。ハッシュタグ作るから、みんなも教本片手に涙目になる学生をこれ以上増やさないためにも、参加していただきたい。 #dp140
PG@みやざき @hrk0213
普段自分が意識して組んでるのにそんな名前あったんだって発見あって面白いなぁ デザパタもちゃんと勉強しないと。 #dp140
尾野(しっぽ) @tail_y
Decoratorパターンメソッドをオーバーライドするのもいいけど、ちょっと処理を追加したいくらいなら元が消えちゃって面倒だよね。継承前のクラスを変数で持って、そのメソッドを呼び出して流用するといいよ。自身の変数を変える系のメソッドだと難しいけどさ。 #dp140
尾野(しっぽ) @tail_y
追加説明。誰も参加しなくても、僕は頑張るよ! #dp140
尾野(しっぽ) @tail_y
Mementoパターンリプレイとか、アンドゥとか、状態を保存したい時に使う。クラスの外側からだとprivateな部分が保存できないので、クラス本人に保存データを作って吐き出してもらうのがコツ。Prototypeと似てるけど、必要な部分だけコピーするのが違い。 #dp140
尾野(しっぽ) @tail_y
Commandパターン命令を保存するクラスを作るよ。便利な点は、コードが読みやすくなること、予約しておいて後で実行できるってこと。他にもログが取れたり、やり直しが出来たり、ロードを待ったりできる。使いすぎて変態コードにならないように注意ね。 #dp140
尾野(しっぽ) @tail_y
CommandパターンAS3に関して言えば、Progressionを使えということだよ。 http://progression.jp/ja/ #dp140
残りを読む(42)

コメント

fuji @fujista 2010年4月22日
パターン名をオレンジ色大きいサイズでデコレーション。 見難い場合は他の色に変更しちゃってください。
尾野(しっぽ) @tail_y 2010年4月22日
他の人の「既に使っていた」という反応が、デザインパターンを勉強する上でとても重要だと思っているので追加しました。
旭日ゆうほ @asahiufo 2010年4月23日
自分のツイート追加ー
itoz @itoz 2010年4月23日
これよくやるなぁ。自然とやってた。 RT @tail_y: Template Methodパターン:空っぽのメソッドを作っておいて、それを自分で呼び出しておく。で、継承したときにメソッドの中身を埋める。動作が変化するものを色々作りたい用。デザパタ知らなくても自然と使ってる人がよくいる。protectedを使うのがコツ。 #dp140
kyab @kyab212 2010年4月23日
RT @tail_y: Adapterパターン: AdapterしたものにAdapterすると意味不明になってくる。 ぐらついたり、事故が起きる確率も高くなる。でも便利。別名wrapper ? #dp140
ほっと @hotwatermorning 2010年4月23日
デザパタ本欲しくなってきた。。。
尾野(しっぽ) @tail_y 2010年4月23日
参加してくれた人のを追加しといたよ!
尾野(しっぽ) @tail_y 2010年4月23日
Mediatorパターン忘れていたので追加。
lequinharay @lequinharay 2010年6月15日
デザパタは新言語!みたいな感じに扱ってる人よくいる気がするけど、要は頭いい人が楽(ミスらない・共有しやすい・修正しやすい・手間が減る)するためにやってるコツってことですよねー。ちょっとしたライフハックみたいな。
ログインして広告を非表示にする
ログインして広告を非表示にする