在 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()
仍然被调用,它只是被隐式调用。