2011-08-30 26 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

我会说适配器或外观。装饰者模式也可以使用。它为供应商提供了添加(“装饰”)产品和附加信息的能力。

相关问题