依赖注入允许您避免直接引用对象外部的对象和范围。您改为引用注入的依赖项。
我想知道全局函数库的最佳实践。我目前将我的功能存储在服务器范围内。我希望我的项目能尽快开源,并让其他开发人员易于理解。我希望应用程序更容易编写单元测试并且更松散耦合。
我应该将服务器范围注入到每个使用全局函数的对象中吗?
还是应该在引用这些函数时将“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>