0

依赖注入允许您避免直接引用对象外部的对象和范围。您改为引用注入的依赖项。

我想知道全局函数库的最佳实践。我目前将我的功能存储在服务器范围内。我希望我的项目能尽快开源,并让其他开发人员易于理解。我希望应用程序更容易编写单元测试并且更松散耦合。

我应该将服务器范围注入到每个使用全局函数的对象中吗?

还是应该在引用这些函数时将“server.functions.myFunction()”范围直接放在组件中?

以下是代码示例:

方法一:

<cfcomponent>
    <cffunction name="init">
        <cfscript>
           server.functions.myFunction();
        </cfscript>
    </cffunction>
</cfcomponent>

方法二:

<cfcomponent>
    <cffunction name="init">
        <cfargument name="serverScope" type="struct" required="yes">
        <cfscript>
            variables.serverScope=arguments.serverScope;
            variables.serverScope.functions.myFunction();
        </cfscript>
    </cffunction>
</cfcomponent>
4

1 回答 1

1

我从来没有把我的答案正式化。根据您在评论中所说的话,我会这样做:

  • 将您的全局库分解为更多特定用途的组件,然后将其视为对象(有状态),或者 - 出于所有意图和目的,静态库(无状态)。
  • 是的,使用依赖注入注入特定情况所需的那些。

为了方便起见,我不会破坏封装。

于 2013-04-21T00:10:38.820 回答