在ColdFusion 10中通过在application.cfc中设置<cfset THIS.invokeImplicitAccessor = "true">
我们现在可以直接访问属于cfc的任何属性。
我不确定开发人员为何会使用这种功能。
我的问题是,这是否违反了面向对象编程的数据隐藏原则?
答案 0 :(得分:5)
隐式访问器是一个已建立的OO-esque(它们实际上不是OO概念本身;它只是语法糖)概念(参见C#'s docs for accessors)。这只是用于打开它们的CFML机制(它们默认情况下不启用)。我不知道这与“数据隐藏原则”有何关联。
所有这一切都意味着而不是这样做:
myObj.getProperty();
可以这样做:
myObj.property;
使用后一种语法,getProperty()
仍然是调用,它只是隐式调用。