ServiceLayer Facade应该如何?

时间:2014-10-16 17:50:05

标签: c# .net service layer facade

我有一个简单的N层架构:演示 - >服务层 - >业务对象层 - 数据访问层。服务层包含一些数据提供程序服务。我想为该图层创建外观。 不知道它应该怎么样。我认为它应该包含CRUD操作,但不知道究竟是怎么回事?需要一些例子。

我可以创建一些CRUD操作,例如" CreateCustomer()/ CreateOrder()"和其他人,但如果实体很多呢?这种方法不起作用。

请给我一些服务层正确外观的例子

2 个答案:

答案 0 :(得分:0)

你应该有,

  1. 依赖实体的Facade服务,例如,银行系统包括帐户,员工等。要创建银行,您需要创建其员工和帐户。因此,员工和帐户实体将由两个不同的服务(如EmployeeService和AccountService)管理。除此之外,您需要创建将注入EmployeeService和AccountService的BankService。这将作为Facade

    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. Facade上的工厂模式。每项服务都有一个唯一的ID。

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

答案 1 :(得分:0)

服务层实际上是应用程序中基础结构层的外观 它协调所有其他基础设施组成部分的活 那你可以用粗略命名操作,比如创建,编辑,删除, 但作为最佳实践,您最好使用DDD原则命名它们;喜欢创建帐户 删除帐户等。 您的服务层应该引用存储库所在的基础架构层,然后使用它们来访问您的域模型;

我希望这有帮助。