デザパタ140文字

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

Factoryパターン:クラスを生成するクラスを作りそれを工場(Factory)に見立る。利点としてはサブクラスがどのクラスを生成するのかを決定できること。つまり一番最初に車を作ると定義しておいて、サブクラスがベンツを作ったり、ゴミ収集車を作ったりすることができる。#dp140

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

Adapterパターンメソッドの名前や引数を変えなきゃいけない時に(クラスの処理を揃えたい時とか)書き換える場所が多いならちょっと待って!外側だけ似せた、着ぐるみみたいなクラスを作って変数に中身を入れちゃえば楽かも。…少しくらいならちゃんと書き換えなよ。 #dp140

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

Adapterパターンについては、ちょっと語弊があるかも・・・変えるのが面倒くさいからという理由ではなく、他で使われているので容易に変更できない場合に使うものな気もするけど、まあ、そこまで説明すると入らないか。 #dp140

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

Interpreterパターンオリジナルスクリプトを作るときのコツ!というパターンだけど、今日び使わないと思うよ。必要な時に勉強したらいいよ。 #dp140

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

Template Methodパターン空っぽのメソッドを作っておいて、それを自分で呼び出しておく。で、継承したときにメソッドの中身を埋める。動作が変化するものを色々作りたい用。デザパタ知らなくても自然と使ってる人がよくいる。protectedを使うのがコツ。 #dp140

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

だんだん説明が難解になってきた気がするぞ。もっと砕けた調子を心がけないと・・・。 #dp140

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

知らず知らず自分がデザパタを駆使していることを知った。面白いなー。 #dp140

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

Compositeパターンこんぽじっと。階層構造を作る時に心がけるコツ。入れ物と中身に同じ機能があると便利だよってこと。例えばファイルとフォルダで言うと、両方とも同じようにドラッグできるし、名前変更できる。これは、フォルダにもファイルの機能が継承されてるから。 #dp140

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

Compositeはよく読めないと言われるので読み方を入れたが、そのせいで文字がはみ出して結構悩んだけど、なんとかなった。

2010-04-22 22:51:27
にこ らす @Nicol_as

@tail_y AS3のDisplayObjectとDisplayObjectContainerの関係もCompositeパターンになりますか?

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

まさにそのとおり #dp140 QT @Nicol_as: @tail_y AS3のDisplayObjectとDisplayObjectContainerの関係もCompositeパターンになりますか?

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

Stateパターン状態をクラス化すること。ゲームで、タイトル画面やメニュー画面を切り替える時とかによく使う。ゲームでなくとも製作中にifとかswitchだらけになってきたら、使いどころかも。どのレベルで切り替えるのか、共通するメソッドは何にするのかが毎回難しい。 #dp140

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

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

2010-04-22 23:00:26
どうけ 🍣 @doke

わかりにくいw かといってポピュラーな例えもないがRT @tail_y: Stateパターン:AS3に関して言えば、Progressionを使えということだよ。 http://progression.jp/ja/ #dp140

2010-04-22 23:02:39
どうけ 🍣 @doke

stateパターン携帯電話のドライブモードのように状態が変わると操作が同じで結果が違うみたいな実装

2010-04-22 23:06:03
おばきう @o8que

NullObjectパターン if(obj != null){ ... } みたいなチェックだらけなら、「"何もしない"オブジェクト」を作ってそれ全部消せば、シンプルでエラーも起きないんだぜ。 #dp140

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

Strategyパターンアルゴリズムを切り替える。Stateパターンとそっくりだけど「目的が違う」らしい。でも、使ったこと無い。なににつかうのこれ #dp140

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

くっ、後回しにした苦手なパターンばかり残ってしまった。カレーが最終的にたまねぎだらけになってしまうミスと同じだ。 #dp140

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

Proxyパターンあるクラスのふりをした別のクラスが先にメソッドを受け取って、加工して本人に渡す。牢獄に手紙出したら本人に届く前に看守が開いて、まずい文章を黒塗りしちゃったりする感じ。見た目に変化が無くても、手紙出した回数とかもこっそり記録 されてたりするよ。 #dp140

2010-04-22 23:13:20
にゃもげら @nyamogera

どうも名前覚えるのが苦手で、服屋さんとかでもよく入る店の名前とかも知らなかったりする。雰囲気と位置だけで覚えてるので、人に聞かれて困る。デザパタも使ったりするけど名前は憶え切れない。

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

Chain of Responsibilityパターン命令を優先度が高い順に伝えていって、誰が処理するか決まる。誰かが処理したらそこでストップする。マウスイベントを誰が受け取るか、とかで使われる。誰も処理しないってことがあってもいい場合が多い。 #dp140

2010-04-22 23:18:51
polyamid @polyamid_jp

Chain of Responsibilityパターンは、「責任のたらい回し」って言うと黒くてステキ #dp140

2010-04-22 23:26:43
@Mushuss

このハッシュタグ勉強になる。書き方試行錯誤して前作ったゲームを今の自分の書き方で直しちゃうようなボクには特にね #dp140

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

Abstract Factoryパターンこういうときはこの組み合わせをnew、っていうのが沢山あるときは、クラスをnewする専用のクラスを複数用意して、それぞれ何をnewするか設定しておくと、後で何のためのnewか分りやすくなるよ。 #dp140

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

Factory Methodパターンクラスが沢山になってきて、一度にいっぱいnewするようになってきたら、組み合わせを間違えやすいので、メインとなるクラスに、他のクラスを作るためのメソッドを用意しておくと、間違えにくくていいよ!

2010-04-22 23:24:27