Frage

Im Moment müssen wir eine Anwendung erstellen, die man auf einem Legacy-basiert. Code für die alte Anwendung sollte weggeworfen werden und neu geschrieben, aber da es in der Regel geht - anstatt sie neu zu schreiben, müssen wir etwas Neues auf sie stützen. Vor kurzem haben wir beschlossen, den DomainDrivenDesign Weg zu gehen. Also - Antikorruptionsschicht könnte eine Lösung für unsere Probleme. Soweit ich diese Art und Weise zu verstehen, soll es möglich sein, nach und nach der alten Anwendung neu zu schreiben.

Aber - ich kann kein gutes Beispiel finden. Ich würde schätzen, ANY Informationen.

War es hilfreich?

Lösung

In meiner speziellen Implementierung wird EmployeeAccessService von einem Repository genannt. Es ist wirklich eine Fassade in die Anti-Korruptions-Schicht. Es Delegierten der EmployeeAccessAdapter. Der Adapter holt ein Objekt aus dem Legacy-Modell (die es von EmployeeAccessFacade wird), geht es dann auf die EmployeeAccessTranslator auf das Domain-Objekt in meiner Anwendung des Modell das Objekt aus dem Legacy-Modell zu verwandeln.

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)

Andere Tipps

die DDD Buch (Domain-Driven Design: Angreifen Komplexität im Herzen von Software) von Eric Evans:

  

Die öffentliche Schnittstelle der   Anti-Korruptions-Schicht in der Regel erscheint   als eine Reihe von Diensten, obwohl   gelegentlich kann es die Form   Ein Unternehmen.

und etwas später

  

Eine Möglichkeit, die Gestaltung der Organisation von   die Anticorruption Schicht als   Kombination von Fassaden, Adaptoren (beides   aus Gamma et al. 1995) und   Übersetzer, zusammen mit der   Mechanismen Kommunikations- und Transport   zu sprechen in der Regel benötigt, um zwischen   Systeme.

So könnten Sie Beispiele finden Sie in der vorgeschlagenen Adapter Muster suchen und Fassadenmuster .

Ich werde versuchen, paraphrasieren, was Eric Evans sagte, Ihre Anti-Korruptions-Schicht als Dienste nach außen Ihrer Schicht erscheinen. So außerhalb der Anti-Korruptions-Schicht der anderen Schichten werden nicht wissen, dass sie mit einer Anti-Korruptions-Schicht „Sprechen“ sind. Innerhalb der Schicht würden Sie Adapter und Fassaden verwenden, um Ihre bestehenden Informationsquellen zu wickeln.

Weitere Informationen über die Anti-Korruptions-Schicht:

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top