2014-10-16 10 views
0

필자는 간단한 N 계층 아키텍처 인 Presentation -> Service Layer -> Business Objects Layer - Data Access Layer를 보유하고 있습니다. 서비스 계층에는 일부 데이터 공급자 서비스가 포함되어 있습니다. 나는 그 층에 대한 정면을 만들고 싶다. 어떻게 보이는지 잘 모릅니다. 나는 그것이 CRUD 작업을 포함해야한다고 생각하지만 정확히 어떻게되는지 모른다. 몇 가지 예가 필요합니다.ServiceLayer Facade의 모습은 어떻습니까?

"CreateCustomer()/CreateOrder()"와 같은 CRUD 작업을 만들 수 있지만 엔티티가 많으면 어떻게 될까요? 이 방법은 효과가 없습니다. 은행 시스템, 직원 등의 계정으로 구성되어, 같은

Pls는을, 나에게

답변

0

당신은해야 서비스 계층의 권리 외관의 예, 의존 실체에 대한

  1. 외관의 서비스를 제공 직원과 계정을 모두 만들어야하는 은행을 만드십시오. 따라서 직원 및 계정 엔티티는 EmployeeService 및 AccountService와 같은 두 가지 서비스로 관리됩니다. 그 동안 EmployeeService와 AccountService를 주입 할 BankService를 생성해야합니다. 이것은 외관

    EmployeeServiceImpl implements EmployeeService { 
    
        createEmployee(Employee e) {} 
        deleteEmployee(int empId) {} 
        // 
    } 
    AccountServiceImpl implements AccountService { 
    
        createAccount(Account e) {} 
        deleteAccount(int empId) {} 
        // 
    } 
    BankingServiceImpl implements BankingService { 
        EmployeeService employeeService; 
        AccountService accountService; 
    
        createBank(Bank b) { 
        Account a = b.getAccount(); 
        accountService.createAccount(a); 
    
        Employee e = b.getEmployee(); 
        employeeService.createEmployee(e); 
    } 
    } 
    
  2. 당신의 외관을 통해 공장 패턴으로 작동합니다. 각 서비스에는 고유 한 ID가 있습니다. 그런

    ServiceFactory { 
        public static Service getService(String id) { 
         if (id.equalsIgnoreCase("Bank")) 
          return new BankingServiceImpl(); 
         else if (id.equalsIgnoreCase("Account")) 
          return new AccountServiceImpl(); 
         // 
        } 
    } 
    

뭔가 ...

+0

1.이 뜻은 다음과 같습니다. CustomerService : ICRUD? 2. 무엇을 위해서? ID가 필요한 이유는 무엇입니까? –

0

서비스 층은 실제로는 다른 인프라 구성 요소 사이의 모든 활동을 조정 응용 프로그램 의 인프라 계층에 외관입니다; 글쎄, 당신은 조잡한 작업, 예를 들어, 편집, 삭제, 작성, 편집 할 수 있습니다 하지만 DDD 원리로 이름을 정하는 것이 가장 좋습니다. like 계정 만들기 계정 삭제 등. 서비스 레이어는 리포지토리가있는 인프라 계층에 대한 참조가 있어야하며 도메인 모델에 액세스하기 위해 사용합니다.

이 도움이 되었기를 바랍니다.