더북(TheBook)

세 서비스 EJB의 연관된 기능을 논리적으로 묶어 퍼사드 패턴을 구현합니다(코드 3-3).

코드 3-3 무상태성 퍼사드

package com.devchronicles.facade;
 
import javax.ejb.Stateless;
import javax.inject.Inject;
 
@Stateless
public class BankServiceFacade {
 
@Inject
CustomerService customerService;
 
@Inject
LoanService loanService;
 
@Inject
AccountService accountService;
 
public boolean getLoan(int sessionId, double amount) {
    boolean result = false;
    long id = customerService.getCustomer(sessionId);
 
    if(customerService.checkId(id)){
        if(loanService.checkCreditRating(id, amount)){
            if(accountService.getLoan(amount)){
                result = accountService.setCustomerBalance(id, amount);
            }
        }
    }
    return result;
}
}

퍼사드는 다른 하위 시스템의 퍼사드를 실행할 수 있는데 이런 식으로 그들만의 로직과 실행 흐름을 캡슐화합니다. 그래서 퍼사드를 쓰면 메서드 호출의 계층 구조를 단순하게 만들 수 있지요. 하위 시스템마다 퍼사드를 하나씩 두고 그들 서로는 내부적으로 퍼사드로 소통하는 구조입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.