Prenons par exemple:Logique de domaine partagé?
CreateOrderTicket(ByVal items As List(Of OrderItems)) As String
Où placeriez-vous ce genre de logique donnée:
CreateOrder should generate a simple list (i.e. Item Name - Item Price)
PizzaOrderItem
SaladBarOrderItem
BarOrderItem
Recommanderiez-vous: refactorisation commun à une classe abstraite/interface avec des propriétés partagées une méthode appelée de CreateOrderTicket
Ou,
Création d'un service commun qui expose un CreateOrderTicket
Nous ne voulons pas évidemment trois méthodes de createOrderTicket, mais l'ajout de méthodes, héritant, la surcharge et l'utilisation de médicaments génériques sembler un coût élevé juste extraient un comportement ..
On suppose pour l'amour d'un exemple simple (actuellement) il n'y a pas de classe de base OrderItem ou d'interface ..
Aide !! :)
p.s. Existe-t-il un moyen de surcharger sans forcer tous les objets hérités à utiliser le même nom?
Oui, c'était ma première pensée mais j'ai tendance à ne pas tenir compte des classes de base et à préférer les interfaces. Mais pour avoir une fonction partagée, il n'y a pas d'autre moyen de le faire que je puisse voir. BaseClass .. surcharge ou envelopper propriétés protégées (pour différents noms) "Logic Service" ... encore besoin de comprendre quels sont les paramètres entrant ont encore besoin d'une interface d'abstraction ou BaseClass. J'espérais que les autres auraient une façon de décider quand une approche est la meilleure et quand il est correct d'avoir un baseclass (puisque vous ne pouvez en avoir qu'un.) – 5x1llz
oh et je devrais ajouter la raison de la surcharge et l'ajout de génériques est de sorte que vous n'est pas seulement limité à l'interface lors de l'appel de cette classe depuis n'importe quel endroit autre que la fonction partagée. Pour éviter une distribution .. il semblait juste beaucoup à faire pour partager une fonction à travers plusieurs classes – 5x1llz