0

次の 2 つの CFC があります。

component extends="Controller" displayName="foo" {
    public void function minifoo() {
    }
}

component extends="Foo" displayName="bar" {
    public void function minibar() {
    }
}

Foo.cfc に存在するすべての関数が Bar.cfc で使用できることはわかっています。しかし、その逆は正しくないようです。Bar.cfc の関数を Foo.cfc でも利用できるようにすることはできますか? それとも、継承は一方向にしか機能しませんか?

4

2 に答える 2

5

名前が示すように、継承は一方向にのみ機能します。父親が息子を継ぐのは少し難しい。;)

広く利用できるようにしたいいくつかの一般的な機能がある場合は、おそらく何らかの形式のヘルパーまたは依存性注入を検討する必要があります。

一般的ではなく、親と子の CFC に固有の場合は、アプリケーションの構造、これら 2 つの CFC 間の関係、および機能が実際に存在する場所を確認する必要があります。

于 2011-02-16T00:54:12.450 に答える
4

いいえ、継承はそのようには機能しません。

基本的に依存性注入を試してください...

f = new Foo();
b = new Bar();
f.setBar(b);
b.setFoo(f);

必要に応じて、ColdSpring、Lightwire、Wirebox などのフレームワークが役立ちます。

その後、彼らはお互いに話すことができますが、それが本当にあなたが望むものなら、あなたは一生懸命考えるべきです. 多分あなたはそれらを違うデザインにしたいと思うでしょう。

于 2011-02-16T00:54:00.920 に答える