2010-11-23 3 views
2

J'ai hérité d'un projet dans lequel est appliqué cette solution:Conception des utilitaires pour les versions diffrent de bibliothèque 3ème partie

Il y a 5 versions de la bibliothèque 3ème partie. Et il ya 5 projets dans la solution avec des utilitaires pour la version correspondante de la bibliothèque de tiers.

Un grand nombre de classes d'utilitaires dans la solution ont un code identique pour toutes les versions de la bibliothèque tierce. Le problème de duplication est résolu de cette façon: les fichiers de code qui doivent être identiques pour tous les projets sont stockés dans un dossier commun et ajoutés en tant que lien vers tous les projets.

Je ne pense pas que l'utilisation de liens pour partager du code est la meilleure approche. Pourriez-vous me dire si c'est une mauvaise approche et si c'est le cas, s'il vous plaît dites-moi quelle est la bonne façon de résoudre ce problème de duplication de code?

Merci d'avance.

Répondre

1

Il est assez subjectif de savoir si c'est «mauvais».

Les fichiers de code liés sont possibles pour une raison - parfois il est nécessaire de partager des fichiers comme celui-ci entre plusieurs projets. En fonction de la différence entre les versions d'une bibliothèque tierce, il peut être possible d'écrire du code wrapper qui traite ces différences et les isole.

+0

Je pensais à l'écriture de wrapper, mais cela ne s'applique pas dans mon cas pour deux raisons: 1. l'API est assez grande (classes de centaines) et l'encapsuleur d'écriture n'est pas trivial; 2. l'écriture des classes wrapper déplacerait le problème de duplication à l'encapsuleur. – ika

+0

Vous pourriez probablement automatiser la plus grande partie avec un ou deux modèles, générer des interfaces, puis lancer simplement l'implémentation de wrapper requise en fonction de la version de la bibliothèque. Mais, oui, encore une bonne quantité de travail pour le faire. –

Questions connexes