0

依存性注入を使用すると、オブジェクトの外部にあるオブジェクトとスコープを直接参照することを回避できます。代わりに、注入された依存関係を参照します。

グローバル関数ライブラリの場合のベスト プラクティスを知りたいです。現在、関数をサーバー スコープに格納しています。私のプロジェクトをすぐにオープンソースにして、他の開発者が簡単に理解できるようにしたいと思っています。私は、アプリケーションの単体テストをより簡単に記述し、より疎結合にしたいと考えています。

グローバル関数を使用するすべてのオブジェクトにサーバー スコープを挿入する必要がありますか?

または、ルールに例外を設けて、これらの関数を参照するときに「server.functions.myFunction()」スコープをコンポーネントに直接配置する必要がありますか?

コード例を次に示します。

方法 1:

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

方法 2:

<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