2011-01-24 14 views
6

Potrzebuję utworzyć klasę, która tworzy plik konfiguracyjny XML na podstawie innych obiektów.Pytanie dotyczące projektu obiektowego

Istnieją 3 różne obiekty. Algorytm budowy jest bardzo podobny dla wszystkich obiektów, ale nie jest taki sam.

Myślałem o używaniu klasy bazowej za pomocą metody abstrakcyjnej, a następnie po prostu utworzę klasy pochodne, w których zastąpiłbym metodę abstrakcyjną.

Ale problem polega na tym, że obiekt 3 nie ma wspólnego interfejsu ani klasy bazowej. Te obiekty są komponentami stron trzecich. Nie mogę ich refaktoryzować. Więc nie ma żadnej wspólnej umowy dla wszystkich obiektów.

Czy istnieje jakieś dogodne rozwiązanie dla tej sytuacji? Może jakiś wzór, o którym nie wiem?

+1

Czy typy obsługiwane w kodzie mogą ulec zmianie? Trzeba zapytać, czy rozwiązanie powinno być łatwo skalowalne, aby wspierać dalsze typy stron trzecich? Jeśli nie, po prostu użyj klasy bazowej, aby wykonać wspólną pracę i klasy pochodne, aby poradzić sobie z konkretnymi szczegółami. –

Odpowiedz

1

możesz utworzyć swoją 3 niestandardową klasę odpowiednio poszerzając je [nie jestem pewien co do C#] i wdrożyć wspólną umowę.

3

Można zdefiniować XMLSerializable klasy abstrakcyjnej, a następnie użyć Adapter pattern dostosować te komponenty stron trzecich do XMLSerializable obiektów

Powiązane problemy