哪种设计模式最适合允许来自多个提供商的一个公共类?

Mar*_*ean 5 oop design-patterns

我正在寻找一个应用程序.想想电子商务.但想想,一个由其他提供商提供支持的电子商务网站.

因此情况就是:我会在一个由客户现有的电子商务平台提供支持的电子商务网站前面贴上白色标签,无论是Magento,CubeCart,Prestashop等等.

这些平台都将拥有自己的命名约定和诸如此类的东西,我希望在我的应用程序中有一个通用界面.例如:

class Product {
    var $title;
    var $price;
    var $image;
    var $description;
    // and so on
}
Run Code Online (Sandbox Code Playgroud)

显然,不同的提供商可能会以不同的方式称呼 例如,title可能product_title在提供者,或product_name,或productTitle等等.另一个例子:price可能是cost,或者unit_price等等.希望问题变得明显.

理想情况下,我想指出从应用程序的业务类中抽象服务的最佳设计模式,因此我可以添加提供程序,而无需重新考虑我的应用程序中的任何内容.

对于上述场景,哪种设计模式最佳?

kst*_*uch 6

我会选择这样的东西:

在此输入图像描述

根据您想要集成的提供程序,您可能需要在适配器和实际提供程序之间添加额外的装饰器外观(例如为了简化 API)。