0

我有以下两种 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,那么您可能需要查看您的应用程序结构、这两个 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 回答