Ich habe drei Klassen, die ihre Schnittstelle implementieren.Kreisabhängigkeit mit Dependency Injection auflösen
Orders
public interface IOrderService
{
//SomeOrderFunction()
}
public class OrderService: IOrderService
{
//SomeOrderFunction();
}
Treiber
public interface IDriverService
{
//SomeDriverFunction()
}
public class DriverService: IDriverService
{
//SomeDriverFunction();
}
Plans - Verwendet Treiber und Plan Dienste
public interface IPlanService
{
//SomePlanFunction()
}
public class PlanService: IPlanService
{
private readonly IOrderService _orderService;
private readonly IDriverService _driverService;
public PlanService(IDriverService driverService, IOrderService orderService)
{
_orderService = orderService;
_driverService = driverService;
}
//PlanFunctionsThatUseServices();
}
Das Problem, das ich jetzt aber ist haben, dass der Orden und Fahrerservice müssen Sprechen Sie zurück mit dem Plan-Service, wenn entweder eine Bestellung oder ein Fahrer geändert wird, wie würde ich dies tun w ohne eine zirkuläre Abhängigkeit zu haben?
Bearbeiten: Ich habe speziell auf die Schaffung eines vierten Service, der alle anderen wie die in diesem Artikel erläutert verwaltet.
Was mich an dieser Implementierung verwirrt ist mein Plan Klasse, hat mein Plan Klasse implementieren sowohl die neue Klasse und die iPLAN-Schnittstelle?
Ich glaube nicht, dass es möglich ist, ohne diese Referenz. Alternativ können Sie die Klasse _fourth_ erstellen, die die Kommunikation zwischen den drei Diensten verwaltet. – rbm