2011-01-24 3 views
6

Je dois créer une classe qui crée un fichier de configuration XML basé sur un autre objet.Question de conception orientée objet

Il existe 3 objets différents. L'algorithme de construction est très similaire pour tous les objets, mais pas pareil.

Je pensais à utiliser une classe de base avec une méthode abstraite et ensuite créer simplement des classes dérivées avec où je remplacer la méthode abstraite.

Mais le problème est que ces 3 objets n'ont pas une interface commune ou une classe de base. Ces objets sont des composants tiers. Je ne peux pas les refactoriser. Il n'y a donc pas de contrat commun pour tous les objets.

Existe-t-il une solution pratique pour cette situation? Peut-être un motif de design que je ne connais pas?

+1

sont les types pris en charge dans votre code susceptible de changer? C'est à demander, la solution devrait-elle être facilement évolutive pour supporter d'autres types de tiers? Si ce n'est pas le cas, utilisez simplement une classe de base pour effectuer un travail commun et des classes dérivées pour gérer les spécificités. –

Répondre

1

Vous pouvez créer votre classe personnalisée 3 en les étendant respectivement [je ne suis pas sûr de C#], et mettre en œuvre un contrat commun.

3

Vous pouvez définir une classe abstraite XMLSerializable puis utilisez la Adapter pattern pour adapter ces composants tiers dans XMLSerializable objets

Questions connexes