2011-01-24 74 views
6

我需要创建一个基于其他对象构建XML配置文件的类。面向对象设计问题

有3种不同的物体。构建算法对于所有对象非常相似,但不相同。

我想用一个抽象方法使用一个基类,然后创建一个派生类,其中我会重写抽象方法。

但问题是这3个对象没有共同的接口或基类。这些对象是第三方组件。我无法重构它们。所以对于所有对象没有任何共同的合同。

这种情况有没有方便的解决方法?也许一些我不知道的设计模式?

+1

代码中支持的类型是否可能更改?那就是要问,该解决方案是否可以轻松扩展以支持更多的第三方类型?如果不是,那么只需使用基类来执行通用工作和派生类来处理任何细节。 – 2011-01-24 10:55:42

回答

1

你可以创建你自己的3个自定义类,分别对它们进行扩展[我不清楚C#],并实现一个通用契约。

3

你可以定义一个XMLSerializable抽象类,然后使用Adapter pattern这些第三方组件改编成XMLSerializable对象