Inheritance 为什么当CFC相互扩展时,函数只能在一个方向继承?

Inheritance 为什么当CFC相互扩展时,函数只能在一个方向继承?,inheritance,coldfusion,coldfusion-9,cfc,Inheritance,Coldfusion,Coldfusion 9,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中

我有以下两种氟氯化碳:

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吗?或者继承只以一种方式工作吗?

不,继承不以那种方式工作

尝试依赖性注射,基本上

f = new Foo();
b = new Bar();
f.setBar(b);
b.setFoo(f);
如果需要,像ColdSpring、Lightwire或Wirebox这样的框架可以帮助您实现这一点


然后他们可以互相交谈,但如果这真的是你想要的,你应该好好想想。也许您希望以不同的方式设计它们。

继承只在名称所暗示的一个方向上起作用。 父亲继承儿子有点困难

如果您有一些想要广泛使用的常用函数,那么您可能需要查看某种形式的助手或依赖注入

如果它不是常见的,但特定于父CFC和子CFC,那么您可能需要查看您的应用程序结构、这两个CFC之间的关系以及功能实际存在的位置