哪个更适合UDF:CFC与CFM

时间:2013-09-06 10:23:45

标签: coldfusion user-defined-functions cfc

我在应用程序的单个文件中有几个与逻辑相关的UDF。

问题是单个文件应该是CFC文件还是CFM文件?为什么?

我已经提到了以下几个链接,但是他们解释了如何实施解决方案。我只想知道哪一个更好 - CFM或CFC?

How do you organize your small reusable cffunctions?

http://blog.adamcameron.me/2012/07/which-is-better-having-your-methods.html

感谢您的帮助。

2 个答案:

答案 0 :(得分:12)

“更好”是主观的。如果UDF集合都使用您需要在它们之间传递的相同数据,那么它们可能应该实现为CFC,因此可以拥有有状态对象,因此数据和方法可以封装在自己的内存空间中。

如果它们是纯粹的静态方法,那么包含的库文件可能没问题。

包含的UDF单独污染变量范围,而CFC实例中的函数通过一个对象变量访问,因此有点整洁。

如果CFML具有静态方法的概念,我总是使用CFC,但由于CFML 具有静态方法,因此可以将函数库证明为以及CFCs。

个人:我总是使用CFC。它们看起来更有条理,更整洁。

答案 1 :(得分:2)

根据我的经验,我更喜欢CFC。考虑到大多数UDF只是实用程序帮助程序,因此它们只需要创建一次。将它们放在CFC中意味着您可以将它们加载到应用程序范围中并保留CFC实例。 UDF仅为您的应用程序创建一次。此外,您可以让其他CFC扩展此“实用程序”CFC,以便UDF也可以在那里使用。

现在使用CFM,只要您包含该模板,就会再次为该请求创建UDF。它是对真正不需要它的东西的额外处理。此外,已经提到的UDF污染变量范围的原因是偏好CFC的另一个重要原因。