目前,我们必须构建一个基于旧版应用程序的应用程序。该旧应用程序的代码应扔掉并重新编写,但通常会这样做-而不是重写它,我们需要在它的基础上增加一些新内容。最近,我们决定采用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/

10-13 05:33