Design Patter by PHP[6]: Prototype
- Date
- 2006-11-26 (Sun)
- Category
- Design Pattern
第六回目は Prototype です。コードは毎回 Subversion のレポジトリ
http://svn.nydd.org/dpxphp/Prototype/
にあります。
今回から UML 図を書いてみることにしました。っていうか、全部本に書いてある通りですけれども。
今回の気づき
- PHP の clone は、Java のようなメソッドではなく、new などと同じ、言語構造。しかし個別 class にて __clone() という特殊なメソッドを用意すれば、override 可能。
オブジェクトのクローンが作成される際、PHP 5 は、そのオブジェクトのプロパティを 全てシャローコピーします。他の変数へのリファレンスを保持する全てのプロパティは、 リファレンスのままとなります。 __clone() メソッドが定義された場合、新規の作成されたオブジェクトの __clone() メソッドがコールされるため、この中で、プロパティに 必要な変更を行うことができます。
- 上記引用ページに出てくる self というキーワード。どっかで読んだけどなんだっけ? static キーワードにあるように、static な変数にアクセスする this ということですな。予約語の一覧というページのユーザコメントに、
The list also seems to be missing both "parent" and "self" as well.
とある(しょーもな…)。 - interface に abstract 宣言は必要ない、というより設定するとエラーが出る。
Comment:0
Trackback:0
- TrackBack URL for this entry
- http://blogs.grf-design.com/mt/mt-tb.cgi/197
- Listed below are links to weblogs that reference
- Design Patter by PHP[6]: Prototype from The Croton
