2013-06-06 4 views
0

제품을 개발하고 이러한 제품에는 EJB로 구현 된 비즈니스 로직이 있습니다. 아이디어는 User Exit (사용자가 기본 동작을 무시할 수있는 확장 지점)를 제공하는 것입니다. 제품 개발에서 공통적 인 문제 여야하지만 Java로 작성된 비즈니스 논리의 재정의를 지원하는 디자인 패턴이나 추상화 메커니즘은 없습니다.소프트웨어 제품에서 User Exit를 갖는 설계 고려 사항

사용자 출구 중 하나 오버라이드 (override) Bean 클래스 또는 그루비 스크립트가 될 수 있습니다. Java 클래스 나 스크립트를 사용하여 EJB를 재정의 할 수있는 제품을 개발하기위한 디자인 패턴이나 디자인 고려 사항이 있습니까?

는 기본 구현을 사용해야 또는 사용자 고유의 구현 (오버라이드 (override) 사용자 종료 코드)의 방법을 사용할지 여부를 동적으로 결정하는 AspectJ의를 사용하여 무엇을 할 수 ?

+0

사용자가 EJB 기능을 무시할 수있게 하시겠습니까? – Thihara

+0

사용자 일 필요는 없으며 구성 팀 또는 클라이언트 서비스 팀이 될 수 있습니다. EJB뿐만 아니라 모든 클래스가 될 수 있습니다. EJB 재정의 중 하나입니다. –

+0

일반적으로 나쁜 생각처럼 들립니다. 이벤트 후크가 필요한 기능을 제공 할 수 없습니까? DI/IOC를 사용할 경우 일부 bean 재정의 구성을 허용 할 수 있습니다. – Thihara

답변

0

Aspect Oriented Programming은 길을가는 길입니다. Spring 3 또는 Plain AspectJ를 사용하는 AOP는 사용자가 기존 기능을 무시할 수있게한다.

자세한 내용은 AspectJ in Action 책을 참조하십시오.

누군가에게 유용 할 것입니다.

0

는 의견을 바탕으로 나는 플러그 로직 알고리즘을 구현하는 전략 패턴을 권 해드립니다.

그런 다음 장소에 클래스를 연결하는 스프링 같은 IOC 컨테이너를 사용합니다.

사용자/클라이언트가 필요에 따라이 구성을 자신의 것으로 대체 할 수 있습니다. 따라서 관심있는 사람은 단순히 인터페이스를 구현하고 configs를 재정 의하여 응용 프로그램이 해당 데이터를 사용할 수 있습니다. 당신은뿐만 아니라이 조사 할 수 있도록

EJB 자체는 지금 의존성 주입이 있습니다. 이러한 조항만으로 충분하다면 앱을 연결하는 데 봄이 필요하지 않을 수도 있습니다. 불행히도 나는 사용자 정의 configs가 가능한지 아는 것이 익숙하지 않다.

관련 문제