Hatena::Groupcatalyst

dann@catalyst このページをアンテナに追加 RSSフィード

2008-05-02

コラボレータのデフォルト値設定は基本builderで

|  コラボレータのデフォルト値設定は基本builderで - dann@catalyst を含むブックマーク はてなブックマーク -  コラボレータのデフォルト値設定は基本builderで - dann@catalyst  コラボレータのデフォルト値設定は基本builderで - dann@catalyst のブックマークコメント

defaultじゃなくて、builderを使おうという話。

http://code2.0beta.co.uk/moose/svnweb/index.cgi/moose/view/Moose/trunk/lib/Moose/Cookbook/Recipe9.pod

要するにdeffaultでcoderefを書いてしまうと、サブクラスで違うものを使いにくいから、builder使って、sub classでbuilderのメソッドを上書きできるようにしようというもの。

If the default value is a simple scalar that only needs to be

calculated once (or a constant), use C<default>.

If the default value is an empty reference that needs to be wrapped in

a coderef like C, use C<default>.

Otherwise, use C<builder>.

This ensures that your classes are easily subclassable, and also helps

keep crufty code out of your attribute definition blocks.

トラックバック - http://catalyst.g.hatena.ne.jp/dann/20080502