사업대표모델


Business Delegate Pattern은 프레젠테이션 레이어와 비즈니스 레이어를 분리하는 데 사용됩니다. 기본적으로 표현계층 코드에서 통신이나 원격 질의 기능을 비즈니스 계층 코드로 축소하기 위해 사용된다. 비즈니스 계층에는 다음 엔터티가 있습니다.

  • Client - 프리젠테이션 계층 코드는 JSP, 서블릿 또는 UI Java 코드일 수 있습니다.

  • Business Delegate - 비즈니스 서비스 방법에 대한 액세스를 제공하는 클라이언트 엔터티용 항목 클래스입니다.

  • LookUp Service - 조회 서비스 개체는 관련 비즈니스 구현을 가져오고 비즈니스 개체에 비즈니스 대표 개체에 대한 액세스 권한을 제공하는 일을 담당합니다.

  • 비즈니스 서비스 - 비즈니스 서비스 인터페이스. 비즈니스 서비스를 구현하는 엔터티 클래스는 실제 비즈니스 구현 로직을 제공합니다.

Implementation

비즈니스 대표 패턴의 다양한 엔터티를 나타내기 위해 Client, BusinessDelegate, BusinessService, LookUpService, JMSServiceEJBService를 생성합니다.

BusinessDelegatePatternDemo, 데모 클래스에서는 BusinessDelegateClient를 사용하여 비즈니스 대표 패턴의 사용법을 보여줍니다.

business_delegate_pattern_uml_diagram.jpg

1단계

BusinessService 인터페이스를 생성합니다.

BusinessService.java

public interface BusinessService {
   public void doProcessing();
}

2단계

엔티티 서비스 클래스를 생성합니다.

EJBService.java

public class EJBService implements BusinessService {

   @Override
   public void doProcessing() {
      System.out.println("Processing task by invoking EJB Service");
   }
}

JMSService.java

public class JMSService implements BusinessService {

   @Override
   public void doProcessing() {
      System.out.println("Processing task by invoking JMS Service");
   }
}

3단계

비즈니스 쿼리 서비스를 만듭니다.

BusinessLookUp.java

public class BusinessLookUp {
   public BusinessService getBusinessService(String serviceType){
      if(serviceType.equalsIgnoreCase("EJB")){
         return new EJBService();
      }else {
         return new JMSService();
      }
   }
}

4단계

비즈니스 담당자를 만듭니다.

BusinessDelegate.java

public class BusinessDelegate {
   private BusinessLookUp lookupService = new BusinessLookUp();
   private BusinessService businessService;
   private String serviceType;

   public void setServiceType(String serviceType){
      this.serviceType = serviceType;
   }

   public void doTask(){
      businessService = lookupService.getBusinessService(serviceType);
      businessService.doProcessing();		
   }
}

5단계

클라이언트를 생성합니다.

Student.java

public class Client {
	
   BusinessDelegate businessService;

   public Client(BusinessDelegate businessService){
      this.businessService  = businessService;
   }

   public void doTask(){		
      businessService.doTask();
   }
}

6단계

BusinessDelegate 및 Client 클래스를 사용하여 비즈니스 표현 패턴을 시연합니다.

BusinessDelegatePatternDemo.java

public class BusinessDelegatePatternDemo {
	
   public static void main(String[] args) {

      BusinessDelegate businessDelegate = new BusinessDelegate();
      businessDelegate.setServiceType("EJB");

      Client client = new Client(businessDelegate);
      client.doTask();

      businessDelegate.setServiceType("JMS");
      client.doTask();
   }
}

7단계

출력을 확인합니다.

rreee