Eine weitere Sache, die man wissen sollte, in einigen Fällen müssen Sie Delegates/Events verwenden, wenn Sie eine niedrige Kopplung benötigen!
Wenn Sie eine Komponente an mehreren Stellen in der Anwendung verwenden möchten, müssen Sie eine Komponente mit niedriger Kopplung erstellen und die spezifische nicht beunruhigte LOGIK muss AUSSEN Ihrer Komponente delegiert werden! Dies stellt sicher, dass Sie über ein entkoppeltes System und einen saubereren Code verfügen.
Im SOLID Prinzip ist dies das "D" (Dependency Inversion Principle).
Auch bekannt als "IoC", Inversion of Control.
Sie können "IoC" mit Events, Delegates und DI (Dependency Injection) durchführen.
Es ist einfach, auf eine Methode in einer Kindklasse zuzugreifen. Aber schwieriger, auf eine Methode in einer Elternklasse von Kind aus zuzugreifen. Sie müssen die Verweis des Elternteils an das Kind übergeben! (oder DI mit Interface verwenden)
Delegates/Events ermöglichen es uns, vom Kind zum Elternteil zu kommunizieren, ohne Verweis zu haben!
In diesem obigen Diagramm verwende ich kein Delegate/Event und die Elternkomponente B muss eine Verweis auf die Elternkomponente A haben, um die nicht beunruhigte Geschäftslogik in der Methode von A auszuführen. (hohe Kopplung)
Bei diesem Ansatz müsste ich alle Verweise aller Komponenten hinzufügen, die die Komponente B verwenden! :(
In diesem obigen Diagramm verwende ich Delegate/Event und die Komponente B muss A nicht kennen. (niedrige Kopplung)
Und Sie können Ihre Komponente B überall in Ihrer Anwendung verwenden!