使用cfc的"invokeImplicitAccessor"很好用吗?

Dee*_*dhy 1 coldfusion application.cfc data-hiding coldfusion-10

在ColdFusion 10中通过<cfset THIS.invokeImplicitAccessor = "true">在application.cfc中设置我们现在可以直接访问属于cfc的任何属性.

我不确定开发人员为什么会使用这种功能.

我的问题是,这是否违反了面向对象编程的数据隐藏原则?

Ada*_*ron 5

隐式访问器是一个已建立的OO-esque(它们本身并不是OO概念;它只是语法糖)概念(参见C#的访问者文档).这只是用于打开它们的CFML机制(它们默认情况下不启用).我不知道这与"数据隐藏原则"有何关联.

它所做的只是意味着而不是这样做:

myObj.getProperty();
Run Code Online (Sandbox Code Playgroud)

人们可以这样做:

myObj.property;
Run Code Online (Sandbox Code Playgroud)

使用后一种语法,getProperty()仍然被调用,它只是隐式调用.