2011-02-16 2 views
0

다음 두 개의 CFC가 있습니다.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

아니요, 상속이 그렇게 작동하지 않습니다. 당신이 필요로하는 경우

시도의 의존성 주입은, 기본적으로 ...

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

그리고 ColdSpring 또는 Lightwire 또는 Wirebox 같은 프레임 워크

는 당신을 도울 수 있습니다.

그렇다면 그들은 서로 이야기 할 수 있습니다. 그러나 그것이 정말로 당신이 원하는 것이라면 하드라고 생각해야합니다. 어쩌면 당신은 그것들을 다르게 디자인하고 싶을 것입니다.

5

상속은 이름에서 알 수 있듯이 한 방향으로 만 작동합니다. 아버지가 아들을 물려 받기가 조금 힘듭니다. ;)

널리 사용되기를 원하는 몇 가지 일반적인 기능이 있습니다. 헬퍼 또는 의존성 삽입의 일부 형식을 살펴야 할 수도 있습니다.

부모에게 공통적이지는 않지만 특정 자식 (parent) & 하위 CFC 인 경우 응용 프로그램 구조,이 두 CFC 간의 관계 및 실제로 기능이있는 위치를 확인해야 할 수 있습니다.