Nehmen Sie zum Beispiel:Shared-Domain-Logik?
CreateOrderTicket(ByVal items As List(Of OrderItems)) As String
Wo würden Sie diese Art von Logik setzen gegeben:
CreateOrder should generate a simple list (i.e. Item Name - Item Price)
PizzaOrderItem
SaladBarOrderItem
BarOrderItem
Würden Sie empfehlen: Refactoring gemeinsam eine abstrakte Klasse/Schnittstelle mit gemeinsamen Eigenschaften eine Methode namens CreateOrderTicket
Oder
einen gemeinsamen Dienst zu schaffen, macht ein CreateOrderTicket
Wir würden drei createOrderTicket Methoden offensichtlich nicht wollen, aber das Hinzufügen Methoden, Vererbung, Überlastung und Generika wie hohen Kosten scheinen mit nur abstrahieren ein Verhalten ..
aus Gründen eines einfachen Beispiels sei angenommen, dass (Derzeit) gibt es keine OrderItem Basisklasse oder Schnittstelle.
Hilfe !! :)
p.s. Gibt es eine Möglichkeit zu überladen, ohne alle ererbenden Objekte zu zwingen, denselben Namen zu verwenden?
Ja, das war mein erster Gedanke, aber ich tendiere dazu, von den Basisklassen abzuweichen und mich mehr auf Schnittstellen zu konzentrieren. Aber um eine gemeinsame Funktion zu haben, gibt es keine andere Möglichkeit, dies zu tun, was ich sehen kann. Interface .. Implementieren Sie es an mehreren Stellen BaseClass .. Überladung oder Umbruch Geschützte Eigenschaften (für verschiedene Namen) "Logic Service" ... muss noch verstehen, welche Parameter kommen, so dass immer noch eine Abstraktionsschnittstelle oder BaseClass. Hoffte, dass andere einen Weg haben würden zu entscheiden, wann ein Ansatz am besten ist und wann es in Ordnung ist, eine Basisklasse zu haben ( – 5x1llz
) und ich sollte den Grund für das Überladen und Hinzufügen von Generika hinzufügen, damit Sie ist nicht nur auf die Schnittstelle beschränkt, wenn diese Klasse von einem anderen Ort als der gemeinsamen Funktion aufgerufen wird. um eine Besetzung zu vermeiden .. es schien nur so viel zu tun, um eine Funktion über mehrere Klassen hinweg zu teilen – 5x1llz