Instantly share code, notes, and snippets.

@fujimisakari
fujimisakari / abstractfactory.png
Last active Aug 11, 2017
HeadFirstデザインパターンの画像
@fujimisakari
fujimisakari / state_pattern.md
Last active Aug 11, 2017
Stateパターン
View state_pattern.md

Stateパターン

HeadFirstデザインパターン Index

パターンについて

状態が変化が多数ある場合に条件分岐を使うことなく状態変化を実現できます
状態毎のオブジェクトを作っておいて、状態を変えたいときは
コンテキスト内の状態オブジェクトを変更するだけで振舞いを容易に変更できます

@fujimisakari
fujimisakari / composit_pattern.md
Last active Aug 11, 2017
Compositパターン
View composit_pattern.md

Compositパターン

HeadFirstデザインパターン Index

パターンについて

階層構造を持つオブジェクトへアクセスしたいときに、
親オブジェクトと子オブジェクトに同じインターフェースを定義することで、
階層構造を意識せずにアクセスすることができる。

@fujimisakari
fujimisakari / iterator_pattern.md
Last active Aug 11, 2017
Iteratorパターン
View iterator_pattern.md

Iteratorパターン

HeadFirstデザインパターン Index

パターンについて

ツリー構造や配列構造のように複雑な構造で保持されているオブジェクトがあるときに、
対象オブジェクトの構造を意識しない簡単な操作で対象オブジェクトの構造を扱うことでできる。

HeadFirstデザインパターンでの定義

@fujimisakari
fujimisakari / template_method_pattern.md
Last active Aug 11, 2017
TemplateMethodパターン
View template_method_pattern.md

TemplateMethodパターン

HeadFirstデザインパターン Index

パターンについて

アルゴリズム実現するためのテンプレート作成するパターンになります。
同じような処理が複数あるとき、基本操作(primitiveOperation)をサブクラスでオーバーライドすることで、
全体を共通化しながら、バリエーションによる影響を局所的に抑えられます

@fujimisakari
fujimisakari / facade_pattern.md
Last active Aug 11, 2017
Facadeパターン
View facade_pattern.md

Facadeパターン

HeadFirstデザインパターン Index

パターンについて

Facadeパターンは、何らかのサブシステムに属する一連の複雑なクラスを
簡素化して統合するFacadeクラスを作成します。
クライアントはサブシステムのこと何も意識せずにFacadeクラスのみに依存した
最小構成のシステムを実現できます。

@fujimisakari
fujimisakari / adapter_pattern.md
Last active Aug 11, 2017
Adapterパターン
View adapter_pattern.md

Adapterパターン

HeadFirstデザインパターン Index

パターンについて

オブジェクトをラップし、別のインタフェースを提供します。

※ アダプタ、デコレータ、ファサードパターンの違い
アダプタは、オブジェクトのインタフェースを変更するためにラップします。

@fujimisakari
fujimisakari / singleton_pattern.md
Last active Aug 11, 2017
Singletonパターン
View singleton_pattern.md

Singletonパターン

HeadFirstデザインパターン Index

パターンについて

ただ1つだけのオブジェクトが作成されていることを保証します。

HeadFirstデザインパターンでの定義

@fujimisakari
fujimisakari / command_pattern.md
Last active Aug 11, 2017
Commandパターン
View command_pattern.md

Commandパターン

HeadFirstデザインパターン Index

パターンについて

Commandパターンは、リクエストを行うオブジェクトと、その実行方法を
知っているオブジェクトを分離させます。
そして、どのリクエストにも対応できるよう共通のAPIを持ち合せており
異る種類のリクエストでも同様の呼び出しでアクションを実行させることできる

@fujimisakari
fujimisakari / factory_method_pattern.md
Last active Aug 11, 2017
FactoryMethodパターン
View factory_method_pattern.md

FactoryMethodパターン

HeadFirstデザインパターン Index

パターンについて

サブクラスが作成する具象クラスを決定します。
インスタンス化したいオブジェクト(製品)を実行時の条件によって決めたい場合に利用します。
ただ、FactoryMethodパターンはオブジェクト(製品)を生成する側と利用する側を分けて定義する必要があります。
分けておくことで、将来システムに起こり得る変更をあらかじめ分離でき保守性を保つことができます。