在ColdFusion Model-Glue控制器中包含UDF/CFC的最佳方法是什么?



我有一些通用的udf和cfc,我想让所有控制器都可以使用它们。我使用Model-Glue 3。我已经想到了几种方法:

  1. 创建一个具有<cfinclude>到udf的基本控制器,并实例化CFCs。所有其他控制器都继承自这个控制器。
  2. 将所有udf转换为cfc,并使用ColdSpring.xml将cfc转化为bean。然后使用ModelGlue.xml中的beans属性使其对控制器可用。
  3. 将udf和cfc存储在helpers文件夹中,并使用helpers作用域访问它们。然而,这看起来像是要被视图而不是控制器使用。
  4. 创建一个全局onRequestStart,它将实例化CFCs并将它们存储在event对象中。然后控制器将通过直接从event对象中抓取cfc来访问它们。

我的问题是,大多数人使用什么方法使所有控制器都可以使用一组通用的udf和cfc ?

我会使用上面的选项2。

对于那些需要helper方法的对象,我将使用DI向它们注入一个helper对象。这将更加灵活。

我不喜欢一个包含所有帮助器的基本对象。原因如下:

  1. 如果以后您想在多个cfc中分解帮助器怎么办?你不能。这取决于你有多少帮助函数以及它可以发展成多少,这可能会使你的对象变得丑陋。如果有一天你有50个辅助函数。

  2. 你真的希望你的控制器有50个与它们的主要关注点无关的额外方法吗?
  3. 关注点分离。控制者应该担心自己是控制者。它们不应该被加载额外的函数,这样它们就知道如何格式化字符串。这应该由StringHelper之类的来处理

其他两个选项听起来不太好。helper的作用域是什么?

相关内容

  • 没有找到相关文章

最新更新