2012-11-01から1ヶ月間の記事一覧

Composite Pattern

木構造を持つオブジェクトモデルに適用可能なパターン。O/Rマッピングにおける、単一テーブル上の自己参照結合に適用できる。

Builder Pattern vs Abstract Factory Pattern

どちらもインスタンス生成に関わるパターン。 違い、というか、フレームワーク設計時にこの2つをどう使い分ければいいのか、よくわからなかったので、自分なりにまとめてみた。Builder Patternは、インスタンスの生成プロセスを抽象化する(Abstract Builder…

Prototypeパターン

オブジェクトからオブジェクトを生成する設計。 phpではcloneキーワードでオブジェクトのシャローコピーを生成できる。 header = new Header($title); //<-- headerプロパティはHeaderオブジェクトの参照である } /* * phpのクローンキーワードは、オブジェ…

colinuxでubuntuの環境を作る

ubuntu のイメージを直接colinuxのサイトから落としたやつだとシングルモードでの起動になってしまうので、インストーラー付属のイメージを使う。ネットワーク接続はTAPで行う。Win側のネットワーク設定手順は割愛。ひとつだけ、ファイアーウォールが接続の…

Template/ Factory Method

Template method ベースクラスにテンプレートメソッドを実装、他はサブクラスにデレゲートする、そういう設計 なので、ベースクラスの設計を分かりやすくしておくこと(コメント、ドキュメントとかを作っとく) 要は、デレゲーションさせる設計はテンプレー…

Bridge Pattern

機能(function, feature, facility)と実装(implementation)を分ける。 あるクラスに対して、異なる実装が必要な場合に有効な設計手段。 実装の基底クラスをbridgeによって結びつける。bridgeはデレゲーションによって実現される。 そして、機能拡張は浅いほ…

Adapter Pattern

名前の通り、アダプターの機能。 インターフェースの互換性を持たせるための設計手段。 title = $arg; } function show_with_paren(){ echo "((({$this->title})))<br />"; } function show_with_aster(){ echo "***{$this->title}***<br />"; } } /* * アダプターインタ…

Iterator Pattern

なんつうか、IteratorとかAggregateという名前がしっくりこない。Enumerable, Scannableとかのほうがしっくりくる気がする。 イテレーター(以下、スキャナーと書いてしまおう)はスキャンする対象を持っていて、そのインターフェースがhas_next, nextメソッ…