DDD, Anti Corruption layer, how-to?

后端 未结 2 1025
误落风尘
误落风尘 2020-12-02 13:44

At the moment, we have to build an application which is based on a legacy one. Code for that old application should be thrown away and rewritten, but as it usually goes - i

2条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2020-12-02 13:52

    In my particular implementation, EmployeeAccessService is called by a Repository. It's really a facade into the Anti-corruption layer. It delegates to the EmployeeAccessAdapter. The adapter fetches an object from the legacy model (which it gets from EmployeeAccessFacade),then passes it to the EmployeeAccessTranslator to transform the object from the legacy model to the domain object in my application's model.

    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)
    

提交回复
热议问题