読者です 読者をやめる 読者になる 読者になる

liguofeng29’s blog

個人勉強用ブログだっす。

デザインパターン - Command

【Commandパターンとは】 要求自体をオブジェクトにしてしまい、そのオブジェクトを引数に渡す。 【Commandパターンのクラス図】 【Commandパターンのメリット】 さまざまな要求を送ろうとすると、引数の数や種類を増やさなければなりませんが、 それには限…

デザインパターン - Mediator

【Mediatorパターンとは】 Mediatorが複数のインスタンスの状態を顧慮して、指示を出す。 複数のインスタンスはMediatorの相談し、行動を決める。 【Mediatorパターンのクラス図】 略 【Mediatorパターンのメリット】 複数のオブジェクトはお互いの状態を知…

デザインパターン - Proxy

【proxyパターンとは】 代理人オブジェクトと本人オブジェクトを作成し、 本人でしかできない処理以外は代理人オブジェクトが行う。 【proxyパターンのクラス図】 【proxyパターンのメリット】 さ~ 【サンプル】 Teacher.java package proxy; public interf…

デザインパターン - AbstractFactory

【abstract factoryパターンとは】 抽象工場で抽象部品を生成する 【abstract factoryパターンのクラス図】 略 【abstract factoryパターンのメリット】 さ~ 【サンプル】 NabeFactory.java package abstractFactory.abstractItem; // 抽象なべ工場 public …

デザインパターン - visitor

【visitorパターンとは】 受け入れ側(データ構造)と訪問者(処理)を分離し、データ構造を変更せず処理を追加・変更できる。 【visitorパターンのクラス図】 【visitorパターンのメリット】 データ構造を変更せず処理を追加・変更できる。 【サンプル】 Accept…

デザインパターン - FlyWeight

【flyweightパターンとは】 インスタンスを共有して、メモリを節約する。 【flyweightパターンのクラス図】 【flyweightパターンのメリット】 オブジェクトが状態を持つごとで、オブジェクトの利用者は状態による違う振る舞いを気にする必要なくなる。 【サ…

デザインパターン - Stats

【Statsパターンとは】 状態をクラスと表現する。 【Statsパターンのクラス図】 【Statsパターンのメリット】 オブジェクトが状態を持つごとで、オブジェクトの利用者は状態による違う振る舞いを気にする必要なくなる。 【サンプル】 GreetingStats.java pac…

デザインパターン - Memento

【Mementoパターンとは】 オブジェクトの状態保存し、その状態に戻せる。 【Mementoパターンのクラス図】 【Mementoパターンのメリット】 オブジェクトの状態保存し、その状態に戻せる。 【サンプル】 Memento.java package memento; // Playerの状態を保存…

デザインパターン - Observer

【Observerパターンとは】 オブジェクトの状態変更を他のオブジェクトにお知らせする。 【Observerパターンのクラス図】 【Observerパターンのメリット】 観察者が自由に追加できたり・・・ 【サンプル】 Observer.java package observer; public interface …

デザインパターン - Facade

【facadeパターンとは】 窓口を用意して利用者には 内部の色んなクラスの相互関係が分からなくても利用できる。 【facadeパターンのクラス図】 【facadeパターンのメリット】 利用者は窓口(facade)と通して複雑な処理を簡単に利用できる。 【サンプル】 Libr…

デザインパターン - Chain Of Responsibility

【Chain Of Responsibilityパターンとは】 責任者(処理者)を鎖状にして、いずれだれか処理するようにする。 【Chain Of Responsibilityパターンのクラス図】 【Chain Of Responsibilityパターンのメリット】 動的に鎖状を変更できる。 ほか色々あるね・・・…

デザインパターン - Decorator

【サンプル】 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パターンのクラス図】 【compositeパターンのメリット】 再帰処理が容易。 【サンプル】 Entry.java package composite; /* * BoxとItemを同じ物と扱うためのEn…

デザインパターン - strategy(戦略)

【strategyパターンとは】 実行時に戦略(アルゴリズム)を選択できる。 【strategyパターンのクラス図】 【strategyパターンのメリット】 実行時にアルゴリズムを切り替えられる。 たとえば、クライアントPCのスペックにより、高速モードにするか低速モードす…

デザインパターン - Bridge

【Bridgeパターンとは】 機能階層を実装階層を分離する。 【Bridgeパターンのクラス図】 【Bridgeパターンのメリット】 Bridgeバターンは、機能を拡張するための階層と実装を拡張するための階層を分離することにより、 拡張は容易にできる。http://www.techs…

デザインパターン - Builder

【Builderパターンとは】 集合体を決められたAPIで順次走査を行う場合に使用する。 【Builderパターンのクラス図】 【Builderパターンのメリット】 同じ作成過程(Directorの役)で違う属性のものが作れる。 下記サンプルでは、塩水を作ってますが、同じ濃度の…

デザインパターン - Prototype

【Prototypeパターンとは】 インスタンスをコピーして利用する。 【Prototypeパターンのクラス図】 【Prototypeパターンのメリット】 複雑な生成過程のあるインスタンスをコピーして利用できる。 【サンプル】 Paper.java package prototype; public class P…

デザインパターン - Singleton

【Singletonパターンとは】 インスタンスを一つだけ生成できるようにする。 【Singletonパターンのクラス図】 【Singletonパターンのメリット】 このパターンを利用して、生成されるインスタンス数を制御できる。 【サンプル】 SingletonClass.java package …

デザインパターン - Factory Method

【Factory Methodパターンとは】 インスタンスの生成をサブクラスに任せることで、柔軟なインスタンス生成が可能なパターン。 【Factory Methodパターンのクラス図】 【FactoryMethodパターンのメリット】 同じフレームワーク(Factory,Product)を使って、複…

デザインパターン - Template Method

【TemplateMethodパターンとは】 テンプレート機能を持つパターンです。 テンプレート機能を持つスーパークラスでは枠を決めて、具体的な処理はサーブクラスで実装し、 スーパークラスで決められた順番で実行するパターンである。 【TemplateMethodパターン…

デザインパターン - Adapter

【Adapterパターンとは】 強制的にインタフェースを変更させる。 【Adapterパターンのクラス図】 【Adapterパターンのメリット】 既存のAPIを新しいAPIに強制的に変更できる。 【サンプル】 Adaptee.java package adapter; /** * 被せられるクラス */ public…

デザインパターン - Iterator

【Iteratorパターンとは】 集合体を決められたAPIで順次走査を行う場合に使用する。 【Iteratorパターンのクラス図】 【Iteratorパターンのメリット】 1.集約オブジェクト(Cart.javaのitemList)を意識せずに決められてAPI(Iterator.java)で内部を走査…

デザインパターン - INDEX

デザインパターン用途 Iterator 集合体を順次走査したい。 走査部分を外部クラス化できる。 Adapter インタフェースを強制的に変換できる。 Template Method テンプレート機能を持つ。 ロジックの共通化がだきる。 Factory Method インスタンスの作成をサブ…