Ich habe hier ein paar Controller, die Methoden enthalten, die ich in anderen Controllern verwenden kann.
Ich habe erwogen, einige der allgemeinen Funktionen auf einen Basis-Controller zu übertragen, von dem diese dann erben könnten. Das Problem dabei ist, dass ich Methoden benötige, die ich in mehreren Basissteuerelementen brauche, auf die ich nicht zugreifen könnte. (Weil wir nicht von mehreren Basis-Controllern erben können).
Meine andere Idee ist, die allgemeine Funktionalität außerhalb des Ordners Controller in ihre eigenen Klassen zu verschieben.
Was würdest du tun? Gibt es in ASP.NET MVC eine großartige Möglichkeit, Code wie diesen zu teilen, den ich noch nicht kenne?
Es gibt eine Faustregel über die objektorientierte Programmierung, dass Sie die Komposition gegenüber der Vererbung bevorzugen sollten, und sie fügt sich sehr gut in dieses Szenario ein.
Ich würde einen oder mehrere Dienste erstellen, die die fraglichen Methoden kapseln und diese Dienste dann von den Controllern verwenden.
Extrapunkte extrahieren Sie eine Schnittstelle von den fraglichen Diensten und injizieren Sie die Schnittstelle in die Controller für maximale Trennung von Bedenken.
Ich würde in eine Hilfsklasse oder etwas hineinrechnen. Von dem, was Sie beschrieben haben, hilft die Funktionalität den Controllern /
Tags und Links asp.net-mvc c#