2011-08-30 18 views
5

我在找一個應用程序。認爲電子商務。但想一想,由另一家提供商提供支持的電子商務網站。什麼樣的設計模式最適合允許來自多個提供者的共同課程?

這種情況是這樣的:我會爲客戶現有的電子商務平臺提供動力的電子商務網站前端進行白色標記,無論是Magento,CubeCart,Prestashop等。

這些平臺都將有自己的命名規則和諸如此類的東西,我想我的應用程序內的通用接口。例如:

class Product { 
    var $title; 
    var $price; 
    var $image; 
    var $description; 
    // and so on 
} 

明顯不同的提供商可能會以不同的方式調用不同的東西。例如,title可能是供應商中的product_title,或者product_nameproductTitle等等。另一個示例:price可能是costunit_price,依此類推。希望問題變得明顯。

理想情況下,我想指出,從我的應用程序的業務類最佳設計圖案抽象的服務,這樣我就可以不必在我的應用程序的路線重新因子添加任何供應商。

什麼樣的設計模式將是最好對於上述方案?

回答

4

我會去像這樣的東西:

enter image description here

根據要與集成商,你可能要添加DecoratorsFacades(例如簡化API)適配器之間的附加和實際提供者。

+0

嗨,kstaruch。這非常棒,併爲插圖提供獎勵!我會看看集成適配器工廠模式;根據我對納維德的回答的評論,我已經想過要走這條路。 –

2

我覺得Facade模式將是更好地與您的業務類添加提供程序。但是,適配器模式也可以很好地創建與現有API進行通信的API。

+0

謝謝,納維。我會看看這兩個。抽象工廠模式似乎也看起來像一個潛在的候選人。 –

0

我會說適配器或外觀。裝飾者模式也可以使用。它爲供應商提供了添加(「裝飾」)產品和附加信息的能力。

相關問題