Question

J'ai une question de conception. Lors de l'écriture d'une application où il y a plusieurs éléments qui partagent certains attributs, et diffèrent par d'autres en termes de GUI (Windows Forms) et arrière, comment peut-on aborder théoriquement cela?

Par exemple, j'ai une application où j'ai 4 différents types d'un produit. Les formulaires pour entrer dans les détails du produit toutes parts 3 différents domaines. Jusqu'à présent, facile - une classe de base, puis dériver les 4 formes de cette classe de base. Cependant, disons, 2 produits partagent un certain comportement qui est la même pour les deux. Bien sûr, je pourrais avoir une interface qui définit les méthodes, ont alors ces formes d'entrée 2 produits implémentent cette interface, mais étant donné que l'interface ne fournit aucune implémentation par défaut, ne serait-il un gaspillage de le faire? Depuis, je dois fournir une implémentation dans chaque classe et si elle est exactement la même chose, ce serait la répétition de code.

Je pourrais bien sûr mettre cette méthode dans la classe de base et ont 2 formes dérivées. Si mes formes partagent plus d'un élément commun et ne pas partager d'autres éléments, ce qui serait la plus saine et la plus logique pour représenter sans avoir à déchirer mes cheveux?

Pas de solution correcte

Autres conseils

Pourquoi ne pas les 2 classes non liées dérivent directement de votre classe de base, puis créer une nouvelle classe avec la fonctionnalité commune et est dérivée de la classe de base et ont les deux autres classes héritent de cette nouvelle classe?

BaseClass
CommonClass : BaseClass
ClassA : BaseClass
ClassB : BaseClass
ClassC : CommonClass
ClassD : CommonClass

Une façon d'obtenir un comportement commun en deux classes est pour les deux classes à contenir que le comportement en tant que membre, au lieu de héritant ce comportement: pour les formes, cela pourrait signifie la définition d'un « contrôle utilisateur » (c.-à-un de collecte réutilisables de commandes communes).

Difficile à dire sans aucune mise en page spécifique. en général, l'autre forme de réutilisation souvent plus flexible fait composition au lieu de l'héritage. En fait, la hiérarchie de contrôle montre à quel point une forte composition peut aller. Peut-être que vous pouvez séparer les parties de votre interface utilisateur dans les contrôles personnalisés qui sont formés selon la mise en page du produit spécifique que vous êtes après

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top