2009-08-29 4 views

답변

5

사양에 따라 @Local 및 @Remote 주석을 사용하여 인터페이스를 표시 할 수 없으므로 허용되지 않습니다. 그리고 코드를 읽는 것이 좋지 않습니다.

권장 솔루션이 코드는 @ 이후 작동

public interface SomeComponent { 
    public Something processStuff(); 
} 

@Local 
public interface SomeComponentLocal extends SomeComponent { 
} 

@Remote 
public interface SomeComponentRemote extends SomeComponent { 
} 
+0

아이디어가 적다. 이 방법으로 각 bean에 대해 하나의 인터페이스가 추가됩니다. 어쨌든 남자. –

+1

주요 아이디어는 관리하기 쉽고 표현이 풍부한 코드를 작성하는 것이지 까다로운 것은 작성하지 않는 것입니다. 미래의 사람들을 행복하게 만드는 것은 속임수가 아닙니다. –

+0

+1 주요 아이디어는 사양을 위반하지 않는 코드를 작성하는 것입니다 :-) 동일한 인터페이스에서 @Local과 @Remote를 사용하면 컴파일되지만 제대로 배포되지는 않습니다. – ChssPly76

2

입니다 원격/로컬 주석이 상속되지 않습니다 @. 또한 로컬 인터페이스 대신 원격 인터페이스를 구현하면서 @LocalBean을 사용하여 빈 자체에 인터페이스 없음 뷰를 설정할 수도 있습니다.

더 중요한 점은 모든 인터페이스가 제공하는 모든 메소드가 실제로 사용되기 때문에 모든 인터페이스가이 클래스의 사용자에게 필요한 것을 제공해야한다는 것입니다. 그러면이 메소드를 유지해야합니다.

질문은 당신이해야 할 일입니다 : 두 인터페이스가 항상 동일한 방법을 제공합니까? 또는 하나의 인터페이스가 다른 인터페이스의 가능한 하위 집합입니다 (원격지에서 로컬로 확장하는 경우 로컬에 대한 모든 추가가 원격으로 제공되지 않을 수도 있음). @LocalBean에 대해서도 마찬가지입니다. ejb-container가 방금 액세스했으며 다른 사용자는 생각할 수없는 public 메소드가 있습니까?

당신이 할 수있는 유일한 나쁜 일은 의도보다는 게으름으로 인터페이스를 설계하는 것입니다. 더 적은 코드를 작성하기 위해 제외하지도 않습니다.

관련 문제