我有一个简单的N层架构:演示 - >服务层 - >业务对象层 - 数据访问层。服务层包含一些数据提供程序服务。我想为该图层创建外观。 不知道它应该怎么样。我认为它应该包含CRUD操作,但不知道究竟是怎么回事?需要一些例子。
我可以创建一些CRUD操作,例如" CreateCustomer()/ CreateOrder()"和其他人,但如果实体很多呢?这种方法不起作用。
请给我一些服务层正确外观的例子
答案 0 :(得分:0)
你应该有,
依赖实体的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);
}
}
Facade上的工厂模式。每项服务都有一个唯一的ID。
ServiceFactory {
public static Service getService(String id) {
if (id.equalsIgnoreCase("Bank"))
return new BankingServiceImpl();
else if (id.equalsIgnoreCase("Account"))
return new AccountServiceImpl();
//
}
}
类似的......
答案 1 :(得分:0)
服务层实际上是应用程序中基础结构层的外观 它协调所有其他基础设施组成部分的活 那你可以用粗略命名操作,比如创建,编辑,删除, 但作为最佳实践,您最好使用DDD原则命名它们;喜欢创建帐户 删除帐户等。 您的服务层应该引用存储库所在的基础架构层,然后使用它们来访问您的域模型;
我希望这有帮助。