2014-10-16 5 views
0

У меня есть простой архитектурный проект N-уровня: Презентация -> Уровень обслуживания -> Уровень бизнес-объектов - Уровень доступа к данным. Сервисный уровень содержит некоторые службы поставщика данных. Я хочу создать фасад для этого слоя. Не знаю, как это должно выглядеть. Я думаю, он должен содержать CRUD-операции, но не знаю, как именно? Нужны некоторые примеры.Как должен выглядеть Facial ServiceLayer?

Я могу создать некоторые операции CRUD, такие как «CreateCustomer()/CreateOrder()» и другие, но что, если сущности много? Такой подход не сработает.

Pls, дайте мне несколько примеров правого фасада службы слоя

ответ

0

Вы должны иметь,

  1. службы фасада для зависимых обществ, как, банковская система включает в себя счета, сотрудников и т.д. Для создайте банк, который вам нужен, чтобы создать своего сотрудника и учетные записи. Таким образом, сотрудники и учетные записи будут управляться двумя различными службами, такими как EmployeeService и AccountService. В связи с этим вам необходимо создать BankService, в который будут введены EmployeeService и AccountService. Это будет работать как Фасад

    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. Заводской узор над вашим фасадом. У каждой службы будет уникальный идентификатор.

    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. Для чего? зачем нужен идентификатор? –

0

слой Сервис фактически фасад к слою инфраструктуры в приложении его координировать все действия между другими компонентами инфраструктуры; Ну, вы можете назвать операцию с сырой, например, создать, отредактировать, удалить, Но, как лучшая практика, вы лучше назовите их с помощью принципа DDD; например создать учетную запись Удалить учетную запись и т. д. ваш сервисный уровень должен иметь ссылки на ваш инфраструктурный уровень, в котором хранятся хранилища, а затем использовать их для доступа к вашей модели домена;

Я надеюсь, что эта помощь.

Смежные вопросы