2

假设我有一个项目,我在那个项目中有几个 CFC。为了这个例子,我有一个调试功能general.cfc,我想使用该功能,mandrill.cfc而不必将代码复制并粘贴到后一个 cfc 中。我已经用谷歌搜索了这个,直到我不能再用谷歌搜索,我知道我需要在这里发布它。

有人愿意送我去学校吗?

4

3 回答 3

6

我会这样做

<cfset var objGeneral = createObject("component","general")>

然后,如果你有一个被调用的函数,general.cfcgetName()可以通过说objGeneral.getName()

于 2013-07-18T17:38:06.683 回答
2

你应该看看依赖注入的概念,你应该特别看看ColdSpring如何在 ColdFusion(或DI/1)的上下文中实现它。

基本上你有一个 init() 参数,Mandrill其中将接受一个General对象,然后你将General对象设置到对象的变量范围内Mandrill,使用它的方法通过variables.general.

也就是说,这在单例对象上效果最好。如果您需要对瞬态对象执行此类操作,我只需General在您的Mandrill代码中根据需要实例化该对象(即:现在 Matt Busche 建议)。

于 2013-07-18T18:06:40.750 回答
0

我的解决方案是扩展mandrill.cfc 组件general.cfc

<cfcomponent extends="general" name="mandrill" ...> 

也可以看看CreateObject

于 2013-07-18T17:21:46.603 回答