デザインパターン
【Commandパターンとは】 要求自体をオブジェクトにしてしまい、そのオブジェクトを引数に渡す。 【Commandパターンのクラス図】 【Commandパターンのメリット】 さまざまな要求を送ろうとすると、引数の数や種類を増やさなければなりませんが、 それには限…
【Mediatorパターンとは】 Mediatorが複数のインスタンスの状態を顧慮して、指示を出す。 複数のインスタンスはMediatorの相談し、行動を決める。 【Mediatorパターンのクラス図】 略 【Mediatorパターンのメリット】 複数のオブジェクトはお互いの状態を知…
【proxyパターンとは】 代理人オブジェクトと本人オブジェクトを作成し、 本人でしかできない処理以外は代理人オブジェクトが行う。 【proxyパターンのクラス図】 【proxyパターンのメリット】 さ~ 【サンプル】 Teacher.java package proxy; public interf…
【abstract factoryパターンとは】 抽象工場で抽象部品を生成する 【abstract factoryパターンのクラス図】 略 【abstract factoryパターンのメリット】 さ~ 【サンプル】 NabeFactory.java package abstractFactory.abstractItem; // 抽象なべ工場 public …
【visitorパターンとは】 受け入れ側(データ構造)と訪問者(処理)を分離し、データ構造を変更せず処理を追加・変更できる。 【visitorパターンのクラス図】 【visitorパターンのメリット】 データ構造を変更せず処理を追加・変更できる。 【サンプル】 Accept…
【flyweightパターンとは】 インスタンスを共有して、メモリを節約する。 【flyweightパターンのクラス図】 【flyweightパターンのメリット】 オブジェクトが状態を持つごとで、オブジェクトの利用者は状態による違う振る舞いを気にする必要なくなる。 【サ…
【Statsパターンとは】 状態をクラスと表現する。 【Statsパターンのクラス図】 【Statsパターンのメリット】 オブジェクトが状態を持つごとで、オブジェクトの利用者は状態による違う振る舞いを気にする必要なくなる。 【サンプル】 GreetingStats.java pac…
【Mementoパターンとは】 オブジェクトの状態保存し、その状態に戻せる。 【Mementoパターンのクラス図】 【Mementoパターンのメリット】 オブジェクトの状態保存し、その状態に戻せる。 【サンプル】 Memento.java package memento; // Playerの状態を保存…
【Observerパターンとは】 オブジェクトの状態変更を他のオブジェクトにお知らせする。 【Observerパターンのクラス図】 【Observerパターンのメリット】 観察者が自由に追加できたり・・・ 【サンプル】 Observer.java package observer; public interface …
【facadeパターンとは】 窓口を用意して利用者には 内部の色んなクラスの相互関係が分からなくても利用できる。 【facadeパターンのクラス図】 【facadeパターンのメリット】 利用者は窓口(facade)と通して複雑な処理を簡単に利用できる。 【サンプル】 Libr…
【Chain Of Responsibilityパターンとは】 責任者(処理者)を鎖状にして、いずれだれか処理するようにする。 【Chain Of Responsibilityパターンのクラス図】 【Chain Of Responsibilityパターンのメリット】 動的に鎖状を変更できる。 ほか色々あるね・・・…
【サンプル】 Display.java package decorator; // 飾りと中身を同一視するためのクラス public abstract class Display { public abstract int getColumns(); public abstract int getRows(); public abstract String getText(int rowNo); public void show…
【compositeパターンとは】 容器と中身を同じものに扱い、再帰処理が容易にできる。 【compositeパターンのクラス図】 【compositeパターンのメリット】 再帰処理が容易。 【サンプル】 Entry.java package composite; /* * BoxとItemを同じ物と扱うためのEn…
【strategyパターンとは】 実行時に戦略(アルゴリズム)を選択できる。 【strategyパターンのクラス図】 【strategyパターンのメリット】 実行時にアルゴリズムを切り替えられる。 たとえば、クライアントPCのスペックにより、高速モードにするか低速モードす…
【Bridgeパターンとは】 機能階層を実装階層を分離する。 【Bridgeパターンのクラス図】 【Bridgeパターンのメリット】 Bridgeバターンは、機能を拡張するための階層と実装を拡張するための階層を分離することにより、 拡張は容易にできる。http://www.techs…
【Builderパターンとは】 集合体を決められたAPIで順次走査を行う場合に使用する。 【Builderパターンのクラス図】 【Builderパターンのメリット】 同じ作成過程(Directorの役)で違う属性のものが作れる。 下記サンプルでは、塩水を作ってますが、同じ濃度の…
【Prototypeパターンとは】 インスタンスをコピーして利用する。 【Prototypeパターンのクラス図】 【Prototypeパターンのメリット】 複雑な生成過程のあるインスタンスをコピーして利用できる。 【サンプル】 Paper.java package prototype; public class P…
【Singletonパターンとは】 インスタンスを一つだけ生成できるようにする。 【Singletonパターンのクラス図】 【Singletonパターンのメリット】 このパターンを利用して、生成されるインスタンス数を制御できる。 【サンプル】 SingletonClass.java package …
【Factory Methodパターンとは】 インスタンスの生成をサブクラスに任せることで、柔軟なインスタンス生成が可能なパターン。 【Factory Methodパターンのクラス図】 【FactoryMethodパターンのメリット】 同じフレームワーク(Factory,Product)を使って、複…
【TemplateMethodパターンとは】 テンプレート機能を持つパターンです。 テンプレート機能を持つスーパークラスでは枠を決めて、具体的な処理はサーブクラスで実装し、 スーパークラスで決められた順番で実行するパターンである。 【TemplateMethodパターン…
【Adapterパターンとは】 強制的にインタフェースを変更させる。 【Adapterパターンのクラス図】 【Adapterパターンのメリット】 既存のAPIを新しいAPIに強制的に変更できる。 【サンプル】 Adaptee.java package adapter; /** * 被せられるクラス */ public…
【Iteratorパターンとは】 集合体を決められたAPIで順次走査を行う場合に使用する。 【Iteratorパターンのクラス図】 【Iteratorパターンのメリット】 1.集約オブジェクト(Cart.javaのitemList)を意識せずに決められてAPI(Iterator.java)で内部を走査…
デザインパターン用途 Iterator 集合体を順次走査したい。 走査部分を外部クラス化できる。 Adapter インタフェースを強制的に変換できる。 Template Method テンプレート機能を持つ。 ロジックの共通化がだきる。 Factory Method インスタンスの作成をサブ…