2011-01-24 2 views
6

Мне нужно создать класс, который создает файл конфигурации XML на основе других объектов.Объектно-ориентированный вопрос дизайна

Существует 3 различных объекта. Алгоритм построения очень похож на все объекты, но не одинаковый.

Я думал об использовании базового класса с абстрактным методом, а затем просто создавал производные классы, где я бы переопределял абстрактный метод.

Но проблема в том, что 3 объекта не имеют общего интерфейса или базового класса. Этими объектами являются сторонние компоненты. Я не могу реорганизовать их. Таким образом, нет общего договора для всех объектов.

Есть ли какое-либо удобное решение для этой ситуации? Может быть, какой-то дизайн, о котором я не знаю?

+1

Поддерживаются типы в коде вряд ли изменится? То есть спросить, должно ли решение быть легко масштабируемым для поддержки других сторонних типов? Если нет, просто используйте базовый класс для выполнения общей работы и производных классов для обработки любых специфических особенностей. –

ответ

1

вы можете создать свой 3 пользовательский класс, расширяя их соответственно [я не уверен в C#] и реализую общий контракт.

3

Вы можете определить XMLSerializable абстрактный класс, а затем использовать Adapter pattern адаптировать эти компоненты сторонних производителей в XMLSerializable объектов

1

Facade кажется, чтобы соответствовать вашей ситуации.

Смежные вопросы