2010-08-30 23 views
0

Si je crée une bibliothèque avec la plupart des fonctions destinées à l'écrasement, ce qui signifie que vous aurez besoin de mettre votre logique dans certaines des fonctions de la bibliothèque initiale pour obtenir ce que vous voulez de la bibliothèque. sera-t-il normal \ usual \ OK? cette bibliothèque sera-t-elle appelée cadre?Quoi de mieux - le polymorphisme ou l'héritage comme concept pour fonctionner avec une bibliothèque .net?

Exemple Dans ma bibliothèque j'ai CreateData fonction, beaucoup d'autres fonctions et une, appelons-la Main fonction, qui utilise beaucoup de fonctions dans la bibliothèque, a une logique compréhensible et est juste rée pour recevoir un résultat que vous voulez dans un moyen rapide méfiant. La seule chose est qu'il utilise aussi la fonction CreateData. donc vous pouvez simplement appeler Main et obtenir des résultats sur certains \ random généré par les données de créateur de bibliothèque, mais quand vous voulez, ne pas implémenter Main par vous-même, il suffit de changer la logique de création de données, vous devez remplacer la fonction CreateData.

Est-ce qu'une telle manière d'OK du point de vue de POO ou je devrais réécrire Main en utilisant le polymorphisme?

Mais si je vais commencer à utiliser le polymorphisme je devrai probablement l'utiliser pour toutes les fonctions 20-50 que j'ai utilisé dans le principal qui sont maintenant un peu plus inscriptible ...

Répondre

0

I'D dire "aucun de ce qui précède - la composition est généralement meilleure."

Le polymorphisme implique l'héritage. En général, vous surchargez les méthodes virtuelles lorsque vous définissez un comportement polymorphe. Il semble que ce que vous faites est Template Method Pattern.

Je suggère fortement d'écrire des tests unitaires pour votre bibliothèque (ou framework, les termes sont souvent interchangeables). Cela vous obligera à utiliser votre propre code du point de vue d'un développeur client (le terme technique est "dogfooding"). Cette technique aide à trouver des points de douleur.

Je vous recommande également de lire Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries (2nd Edition) et d'exécuter son outil compagnon, FxCop. Vous apprendrez les meilleures pratiques des experts.