Ich lerne über die Zwiebel-Architektur. Ich habe eine Verwirrung über den Service-Layer, weil ich einige Leute sehen, sagen, dass die Kernschicht nur enthalten:Zwiebel-Architektur: Business Services Interfaces und Implementierung
- Modelle
- Repository-Schnittstellen
- Services-Schnittstellen
Aber anderer Ausdruck bringt, dass Es sollte auch die Dienste-Schnittstellen implementieren. Also, welche Schicht sollte die Dienste-Schnittstellen implementieren?
dachte ich, dass die Infrastrukturschicht implementieren sollten:
- Repository Schnittstellen
- Services Interfaces
und injizieren sie auf UI-Ebene und Testschicht, wenn angefordert.
Vielen Dank! enthalten
Laut Jeffrey Palermo: * "Die allgemeine Philosophie der Zwiebel Architektur Ihrer Business-Logik und das Modell in der Mitte (Core) der Anwendung zu halten und Ihre Abhängigkeiten schieben so weit nach außen wie möglich. Die Problemdomäne ist dann völlig unabhängig von der benötigten Infrastruktur (Testen, Datenbanken, Sicherheit, etc.) Das bedeutet beispielsweise, dass das Testen von Datenbankzugriffen ohne eine echte Datenbank gründlich durchgeführt werden kann."* –
Das bedeutet, dass wenn eine Klasse WorkOrderService, die eine Service-Schnittstelle IWorkOrderService implementiert, ein Repository IOrderRepository benötigt, dann würde es eine Klasse OrderRepository benötigen, die diese Repository Schnittstelle implementiert und von der Klasse außerhalb (Infraestructure Layer), so der Dienst Klasse WorkOrderService kann es nicht verwenden Haben Sie das Problem sehen In der anderen Art und Weise.?, wenn Sie die Service-Schnittstelle IWorkOrderService außerhalb des Kerns implementieren, können Sie DI/IoC verwenden Repository IOrderRepository Instanzen für das Abrufen und den Job zu erledigen . Dort ist mein Consufion – reliasr
Sie sollten das in Ihrer Frage einschließen. –