2011-01-24 122 views
6

我需要創建一個基於其他對象構建XML配置文件的類。面向對象設計問題

有3種不同的物體。構建算法對於所有對象非常相似,但不相同。

我想用一個抽象方法使用一個基類,然後創建一個派生類,其中我會重寫抽象方法。

但問題是這3個對象沒有共同的接口或基類。這些對象是第三方組件。我無法重構它們。所以對於所有對象沒有任何共同的合同。

這種情況有沒有方便的解決方法?也許一些我不知道的設計模式?

+1

代碼中支持的類型是否可能更改?那就是要問,該解決方案是否可以輕鬆擴展以支持更多的第三方類型?如果不是,那麼只需使用基類來執行通用工作和派生類來處理任何細節。 – 2011-01-24 10:55:42

回答

1

你可以創建你自己的3個自定義類,分別對它們進行擴展[我不清楚C#],並實現一個通用契約。

3

你可以定義一個XMLSerializable抽象類,然後使用Adapter pattern這些第三方組件改編成XMLSerializable對象