目前,我们必须构建一个基于旧版应用程序的应用程序。该旧应用程序的代码应扔掉并重新编写,但通常会这样做-而不是重写它,我们需要在它的基础上增加一些新内容。最近,我们决定采用DomainDrivenDesign路径。因此,反腐败层可以解决我们的问题。据我了解,以这种方式应该可以逐渐重写旧的应用程序。
但是-我找不到任何好的例子。我将感谢任何信息。
最佳答案
在我的特定实现中,EmployeeAccessService由存储库调用。它实际上是反腐败层的立面。它委托(delegate)给EmployeeAccessAdapter。适配器从旧模型(从EmployeeAccessFacade获取)中获取对象,然后将其传递给EmployeeAccessTranslator,以将对象从旧模型转换为应用程序模型中的域对象。
EmployeeAccessService
public Employee findEmployee(String empID){
return adapter.findEmployee(empID);
}
EmployeeAccessAdapter
public Employee findEmployee(String empID){
EmployeeAccessContainer container = facade.findEmployeeAccess(empID);
return translator.translate(container);
}
EmployeeAccessTranslator
public Employee translate(EmployeeAccessContainer container){
Employee emp = null;
if (container != null) {
employee = new Employee();
employee.setEmpID(idPrefix + container.getEmployeeDTO().getEmpID());
...(more complex mappings)
关于architecture - DDD,反腐败层,如何使用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/909264/