CFMLでデザインパターン実装(2)まとめ
cfinterfaceを使う意味は、やっぱり微妙でしたよ。
以前書いたようにColdfusionではソースコードを書いている際にコンパイル・エラーを出すというチェック機能がないのと、パラメータの型指定が省略可能であるせいで、インターフェイスを定義するメリットが大きく落ちています。
01:<cfcomponent output="false"> 02: 03: <cffunction name="Director" access="public" returntype="void"> 04: <cfargument name="builder" type="cftest.gof.builder.Builder" required="true"/>
その為、このcf-3:Directorの4行目を
04: <cfargument name="builder" type="any" required="true"/>
とか、
04: <cfargument name="builder" required="true"/>
としても動いてしまいます。じゃ、ダック・タイピングな実装にしても同じじゃないか、と。
動的型付け(というか、恐らく正体はjava.lang.Object)な開発環境を作っているのに何故?という気持ちでいっぱいです。本当にありが(ry