2013-07-02 5 views
0

두 개의 다른 bean에서 메소드를 호출하는 차이점을 이해하려고합니다. 첫 번째 방법은 하나의 빈을 다른 빈에 삽입 한 다음 다른 빈에 삽입 된 빈의 메소드를 호출하는 것입니다. 두 번째 접근법은 @observe를 사용하고 이벤트를 발생시키는 것입니다. 어느 것이 더 낫습니까?CDI에서 이벤트 대입

+0

나는 cdi를 알지 못한다. 그러나 di는 기술이다. 관찰자는 관찰자 패턴이어야한다. .. 상황에 따라 다르다. .. – nachokk

+0

DI가로드 및 재 초기화 객체에 있고, 자동으로 생성한다. 이벤트가 욕망 메소드를 호출하기 위해 객체가 존재하고 사후 초기화 메소드를 호출하는 반면, 관찰은 컨텍스트에 종속적 인 반면, 이벤트의 희망 메소드를 호출하기 위해서는 클래스의 인스턴스가 존재해야합니다. –

답변

0

첫 번째 접근법 인 주사는 훨씬 간단하고 따라서 더 좋습니다. 또한 테스트하기가 더 쉽습니다. 설정할 이벤트 컨텍스트가 없습니다.

두 번째 방법 인 이벤트 구동 방식은 두 클래스를 조정하는 타사 (이벤트 프레임 워크)를 도입하므로 더 복잡합니다. 테스트하기가 더 어렵습니다 (코드, 시간 및 지식이 더 많이 필요함).

주사 사용 : 널리 사용되며 광범위하게 지원되며 널리 이해되고 테스트 및 모의가 더 쉽고 간단합니다.

0

위에서 설명한대로 두 솔루션 모두이 상황에서 동일한 작업을 수행합니다. 이벤트는 이벤트를 관찰/듣기 위해 둘 이상의 것을 필요로 할 때 유용합니다. 또한 애플리케이션 구축 방법에 따라 다릅니다. 이벤트/리스너 접근 방식을 원하거나 더 많은 객체 지향을 원하십니까?

+0

더 "일반적인"방법 : p – Yangrui