1

すべてのコントローラーで使用できるようにしたい一般的なUDFとCFCがいくつかあります。私はModel-Glue3を使用しています。これを行うにはいくつかの方法を考えました。

  1. <cfinclude>UDFへのを持ち、CFCをインスタンス化するベースコントローラーを作成します。他のすべてのコントローラーは、このコントローラーから継承します。
  2. すべてのUDFをCFCに変換しColdSpring.xml、CFCをBeanにするために使用します。beans次に、の属性を使用してコントローラーで使用できるようにしますModelGlue.xml
  3. UDFとCFCをヘルパーフォルダーに保存し、ヘルパースコープを使用してそれらにアクセスします。ただし、これはコントローラーではなくビューで使用することを目的としていたようです。
  4. onRequestStartCFCをインスタンス化し、オブジェクトに保存するグローバルを作成しeventます。次に、コントローラーはオブジェクトから直接CFCを取得してCFCにアクセスしeventます。

私の質問は、UDFとCFCの共通のセットをすべてのコントローラーで利用できるようにするためにほとんどの人が使用する方法は何ですか?

4

1 に答える 1

3

上記のオプション 2 を使用します。

ヘルパー メソッドが必要なオブジェクトについては、DI を使用してヘルパー オブジェクトを挿入します。これは、今後より柔軟になります。

すべてのヘルパーを含む基本オブジェクトのアイデアは好きではありません。理由は次のとおりです。

  1. 後でヘルパーを複数の CFC に分割したい場合はどうすればよいでしょうか? できません。ヘルプ関数がいくつあり、どれだけ大きくなる可能性があるかによって、これはオブジェクトを醜くする可能性があります。いつか 50 個のヘルパー関数があればどうでしょう。主な関心事とはまったく関係のない 50 個のメソッドをコントローラーに追加したいですか。

  2. 関心の分離。コントローラーは、コントローラーであることを心配する必要があります。文字列をフォーマットする方法がわかるように、追加の関数をロードする必要はありません。それは StringHelper などで処理する必要があります。

他の 2 つのオプションは、あまり良いとは言えません。Helpers スコープとは何ですか?

于 2011-09-18T20:49:57.327 に答える