2009-05-01から1ヶ月間の記事一覧
オブジェクトの振る舞いに関するパターン 訪問者
オブジェクトの振る舞いに関するパターン ひな型メソッド
オブジェクトの振る舞いに関するパターン 戦略
オブジェクトの振る舞いに関するパターン 状態 抽象メソッドの基本的な使用方法抽象メソッドの振る舞いをクラスごとで変える方法
オブジェクトの振る舞いに関するパターン 観察者 インターフェースの基本的な使用方法呼び出し先で内容を判断することなくインターフェースでのみ実行できる
オブジェクトの振る舞いに関するパターン 形見
オブジェクトの振る舞いに関するパターン 調停者 クラスが複雑に絡み合う場合、 それらクラスを統括するクラスを作成し、簡易化させるたとえばA、B、Cクラスがあり、 AからBが呼ばれ、BからCが呼ばれ、AからもCが呼ばれる。 BからもAが呼ばれる・・・・・・となっ…
オブジェクトの振る舞いに関するパターン 繰り返し hasNextメソッドとnextメソッドを持つクラス 繰り返し処理をさせる場合、配列の数がキーになる次のデータがあるかどうか、 次のデータを取得するメソッドを用意し、 その文だけ繰り返し処理をさせる。DB取…
オブジェクトの振る舞いに関するパターン 通訳
オブジェクトの振る舞いに関するパターン 命令
オブジェクトの振る舞いに関するパターン 責任の連鎖 基本的には委譲の連鎖AからBのメソッドを呼ぶ、BからCのメソッドを呼ぶ・・・・・・ という形で処理を委譲させていく。オブジェクト指向の典型的なパターンではなかろうか? ちなみにAを使うクラスからはBは見…
プログラムの構造に関するパターン 代理人
プログラムの構造に関するパターン 軽量級 同じクラスを何度もロードせずに使い回しを行う。ArrayListとかがそうではなかろうか? 一度インスタンスを起こしたら、何度もnewせずにClearメソッドでクリアして再利用を行う。当たり前のことっちゃぁ、当たり前…
プログラムの構造に関するパターン 見かけ 複数のクラスをひとつにまとめるA、B、Cのクラスがあり、 この3つのクラスを使用することで目的が達成される。ただし、クラスを3つもインスタンスを起こし、 管理するのは面倒だ。このABCをまとめるFacadeクラスを…
プログラムの構造に関するパターン 装飾者 継承ではなく委譲での機能追加同じ名前のメソッドを定義し、 その中であるオブジェクトのメソッドを呼び出す。 そうすることによって、前後に機能を追加することが出来る。
プログラムの構造に関するパターン 合成物
プログラムの構造に関するパターン 橋 インターフェースによる複数のクラスへのアクセスインターフェースの基本的な使い方AクラスからBクラスを呼び出したい しかし AクラスからCクラスも呼び出したい場合 継承関係はBとCにはない。 親も違うといった場合 B…
プログラムの構造に関するパターン 接続装置説明があってるかどうかわからないけどとりあえず書きます。 複雑なインターフェース 特定のインターフェースを持つクラスがあり、 そのインターフェースとあるクラスを紐付けるのがAdapterクラス AからBを呼び出…
オブジェクトの生成に関するパターン 一人っ子 インスタンス生成を静的メソッドで実装する。 コンストラクタのprotected化 また、インスタンスが一度作成されている場合は作成されているインスタンスを返す。コンストラクタをprotected化し静的メソッドでイ…
オブジェクトの生成に関するパターン 原型 Cloneメソッドの実装大抵の場合、同じメンバ変数を持つインスタンスを新しく作成する。
オブジェクトの生成に関するパターン 工場メソッド説明があってるかどうかわからないけどとりあえず書きます。対になるクラスをまとめて管理する ABCとまとめて使用するクラスがある場合、 それらを作成するFactoryクラスを作成する。このFactoryクラスからA…
オブジェクトの生成に関するパターン 構築者 ある、値を事細かに設定できるクラスがあるとする。 そのクラスをある程度簡単に設定することが出来るクラスをBuilderという。簡単な例で言えば座標を表すPointクラスがあるとして TopPointBuilderと言うクラスは…
オブジェクトの生成に関するパターン 抽象的な工場 必要な対になるクラスをまとめて作成するクラスを複数用意したい場合に使用する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 i in 0..9 p "for" + i endこっちも初期化、判定、変数更新が特殊で使いづらい for文というよりはforeachに近い javascriptのforにはforeachに近いのもあるんで、 まぁ、納得できないわけではないんだけど・・・・・・
if s.size >= 5 puts( "5以上") else puts("5未満") endC言語が好きなんでカッコがないのに違和感バリバリ
# ここにコメントを記述こんな感じ
仕事でRubyを使うことになりそうなので 現在勉強中RubyよりRailsを勉強したほうが良い気がするRubyもデザインパターンを勉強したほうが良い気がするまぁ、ちまちまやっていこうと思う 特殊すぎてついていけませんorz