2008-09-01から1ヶ月間の記事一覧

TemplateMethodパターン

Template Method パターン - Wikipediaアルゴリズムのテンプレートを提供する。 abstract class TemplClass { //privateなメソッドは継承クラスで実装必要あり。 //実際に外部から使われる操作はあらかじめ定義されており、どの継承クラスで呼び出しても同じ…

Adapterパターン

Adapter パターン - Wikipediaラッパーパターンとも呼ばれる。 基本的な委譲の使い方。 「既に提供されているもの」と「必要なもの」の差を埋めるパターン。 class Adapter{ private ITarget target; public Adapter(ITarget target) { //メンバにセット } p…

Interpreterパターン

Interpreter パターン - Wikipedia構文解析に使用する。普段ではあまり使わないパターンかな。 Contextクラス 解析対象をトークンに分割する。 解析文字列をメンバに持つ。 非トークン文字列リストをメンバに持つ。 現在のトークンを取得する操作を持つ。(解…

ループ展開

◆マッチしたい条件 「"こんにちは"」のような、"で囲まれた文字列("含む)をマッチングさせる。 ただし、特殊文字としてダブルコーテーション自体を表す「\"」が文字中に現れる。◆ループ展開 1,パターンの開始・終了を表すパターンを考える。 →この場合だとど…

正規表現メモ

処理の流れ ◆文字列 「1234567890」 から 「\d*:」 パターンを抜き出す場合の流れ パターン「\d*」に一致する文字列を探す。この場合は全文字列が一致する。一致した文字列はステートに入る 次に「:」に一致する文字列を探そうとするが、全文字列が一致して…

クラス利用者の心得

ClassAのmethodAAA()はClassAの初期化メソッドinit()が呼び出されていない場合には、 内部で呼び出すような処理になっている。 その為にClassAを利用する側では初期化処理init()を呼び出さず、直接methodAAA() を呼び出す。 →こういう場合、利用側のコードは…

Commandパターン

Command パターン - Wikipedia どの種類の操作も"操作"とひとくくりにする -> Commandインターフェイス 操作毎に実装クラスを作成する。このクラスに実際の処理を行うクラスを内包する。 下記ソースは Commandインターフェイスとして「ICommand」 実装コマン…

今日の反省

・スレッド間の同期取りは本当によく考えて、最小範囲のみに使用する。範囲が大きすぎる・使用箇所が多すぎると、スレッド処理をしているのに逐次処理と変わらなくなるよ。・設計が正しく行われているかのチェック方法。関係するクラスとやりとりされるデー…