ColdFusion 10<cfset THIS.invokeImplicitAccessor = "true">
では、application.cfc で設定することにより、cfc に属する任意のプロパティに直接アクセスできるようになりました。
開発者がこの種の機能を使用する理由がわかりません。
私の質問ですが、これはオブジェクト指向プログラミングのデータ隠蔽の原則に違反していませんか?
ColdFusion 10<cfset THIS.invokeImplicitAccessor = "true">
では、application.cfc で設定することにより、cfc に属する任意のプロパティに直接アクセスできるようになりました。
開発者がこの種の機能を使用する理由がわかりません。
私の質問ですが、これはオブジェクト指向プログラミングのデータ隠蔽の原則に違反していませんか?
暗黙的なアクセサーは確立された OO 風 (実際には OO の概念自体ではありません。単なる構文糖衣です) の概念です (アクセサーについては C# のドキュメントを参照してください)。これは、それらをオンにするための CFML メカニズムにすぎません (デフォルトではオンになっていません)。これが「データ隠蔽の原則」とどのように関連しているのかわかりません。
これを行う代わりに、それが行うことはすべて意味があります。
myObj.getProperty();
これを行うことができます:
myObj.property;
後者の構文でgetProperty()
は、まだ呼び出されていますが、暗黙的に呼び出されているだけです。