2009-05-01から1ヶ月間の記事一覧

Visitor

オブジェクトの振る舞いに関するパターン 訪問者

Template Method

オブジェクトの振る舞いに関するパターン ひな型メソッド

Strategy

オブジェクトの振る舞いに関するパターン 戦略

State

オブジェクトの振る舞いに関するパターン 状態 抽象メソッドの基本的な使用方法抽象メソッドの振る舞いをクラスごとで変える方法

Observer

オブジェクトの振る舞いに関するパターン 観察者 インターフェースの基本的な使用方法呼び出し先で内容を判断することなくインターフェースでのみ実行できる

Memento

オブジェクトの振る舞いに関するパターン 形見

Mediator

オブジェクトの振る舞いに関するパターン 調停者 クラスが複雑に絡み合う場合、 それらクラスを統括するクラスを作成し、簡易化させるたとえばA、B、Cクラスがあり、 AからBが呼ばれ、BからCが呼ばれ、AからもCが呼ばれる。 BからもAが呼ばれる・・・・・・となっ…

Iterator

オブジェクトの振る舞いに関するパターン 繰り返し hasNextメソッドとnextメソッドを持つクラス 繰り返し処理をさせる場合、配列の数がキーになる次のデータがあるかどうか、 次のデータを取得するメソッドを用意し、 その文だけ繰り返し処理をさせる。DB取…

Interpreter

オブジェクトの振る舞いに関するパターン 通訳

Command

オブジェクトの振る舞いに関するパターン 命令

Chain of Responsibility

オブジェクトの振る舞いに関するパターン 責任の連鎖 基本的には委譲の連鎖AからBのメソッドを呼ぶ、BからCのメソッドを呼ぶ・・・・・・ という形で処理を委譲させていく。オブジェクト指向の典型的なパターンではなかろうか? ちなみにAを使うクラスからはBは見…

Proxy

プログラムの構造に関するパターン 代理人

Flyweight

プログラムの構造に関するパターン 軽量級 同じクラスを何度もロードせずに使い回しを行う。ArrayListとかがそうではなかろうか? 一度インスタンスを起こしたら、何度もnewせずにClearメソッドでクリアして再利用を行う。当たり前のことっちゃぁ、当たり前…

Facade(ファサード)

プログラムの構造に関するパターン 見かけ 複数のクラスをひとつにまとめるA、B、Cのクラスがあり、 この3つのクラスを使用することで目的が達成される。ただし、クラスを3つもインスタンスを起こし、 管理するのは面倒だ。このABCをまとめるFacadeクラスを…

Decorator

プログラムの構造に関するパターン 装飾者 継承ではなく委譲での機能追加同じ名前のメソッドを定義し、 その中であるオブジェクトのメソッドを呼び出す。 そうすることによって、前後に機能を追加することが出来る。

Composite

プログラムの構造に関するパターン 合成物

Bridge

プログラムの構造に関するパターン 橋 インターフェースによる複数のクラスへのアクセスインターフェースの基本的な使い方AクラスからBクラスを呼び出したい しかし AクラスからCクラスも呼び出したい場合 継承関係はBとCにはない。 親も違うといった場合 B…

Adapter

プログラムの構造に関するパターン 接続装置説明があってるかどうかわからないけどとりあえず書きます。 複雑なインターフェース 特定のインターフェースを持つクラスがあり、 そのインターフェースとあるクラスを紐付けるのがAdapterクラス AからBを呼び出…

Singleton

オブジェクトの生成に関するパターン 一人っ子 インスタンス生成を静的メソッドで実装する。 コンストラクタのprotected化 また、インスタンスが一度作成されている場合は作成されているインスタンスを返す。コンストラクタをprotected化し静的メソッドでイ…

Prototype

オブジェクトの生成に関するパターン 原型 Cloneメソッドの実装大抵の場合、同じメンバ変数を持つインスタンスを新しく作成する。

Factory Method

オブジェクトの生成に関するパターン 工場メソッド説明があってるかどうかわからないけどとりあえず書きます。対になるクラスをまとめて管理する ABCとまとめて使用するクラスがある場合、 それらを作成するFactoryクラスを作成する。このFactoryクラスからA…

Builder

オブジェクトの生成に関するパターン 構築者 ある、値を事細かに設定できるクラスがあるとする。 そのクラスをある程度簡単に設定することが出来るクラスをBuilderという。簡単な例で言えば座標を表すPointクラスがあるとして TopPointBuilderと言うクラスは…

Abstract Factory

オブジェクトの生成に関するパターン 抽象的な工場 必要な対になるクラスをまとめて作成するクラスを複数用意したい場合に使用するABCのクラスを対として使いたいが A'B'C'のクラスの場合もある A''B''C''のクラスの場合もあるAbstractFactory抽象クラス(イ…

デザインパターン

Rubyを勉強してたらデザインパターンを勉強したほうが ためになる気がしてきたデザインパターンを先に覚えることにする GoFのデザインパターン23種類をメモるあとで編集する。

クラスの作成

# クラスの作成 class Test def initialize super end def Puts puts( "てすと" ) end end# インスタンス作成 b = Test.new b.Puts()インスタンスの作成に違和感バリバリ コンストラクタが「initialize」って言うのも違和感バリバリ

for文

for i in 0..9 p "for" + i endこっちも初期化、判定、変数更新が特殊で使いづらい for文というよりはforeachに近い javascriptのforにはforeachに近いのもあるんで、 まぁ、納得できないわけではないんだけど・・・・・・

if文

if s.size >= 5 puts( "5以上") else puts("5未満") endC言語が好きなんでカッコがないのに違和感バリバリ

コメント

# ここにコメントを記述こんな感じ

Ruby勉強中

仕事でRubyを使うことになりそうなので 現在勉強中RubyよりRailsを勉強したほうが良い気がするRubyもデザインパターンを勉強したほうが良い気がするまぁ、ちまちまやっていこうと思う 特殊すぎてついていけませんorz