我正在创建一个Web应用程序。此应用程序适用于电子商务网站的订单履行。现在,电子商务是IBM Websphere。我首先使用其公开的Web服务从Websphere导入订单并解析它并将其存储到DB中。现在他们已经要求推广这个解析的东西,以便明天如果他们与其他电子商务产品如prestashop一起使用,它应该应对。我需要一些想法如何去做以及我可以保留的所有内容作为可配置的选项,以便将来它不会产生问题。
答案 0 :(得分:0)
查看Design Patterns
:一种解决方案可能是使用Adapter Pattern:
您可以创建一个全局的“通用”界面。然后,为每个需要支持的电子商务创建适配器。例如,现在您将拥有一个适配器:
public class IBMImportAdapter : IECommerce
{
private IBMECommerce _ibmInstance;
public IBMImportAdapter(IBMECommerce instance) {
_ibmInstance = instance;
}
public IEnumerable<Product> GetInput() {
IEnumerable<IBMProduct> ibmProducts = _ibmInstance.TheirGetInput();
List<Product> products = new List<Product>();
foreach (IBMProduct p in ibmProducts) {
products.Add(new Product(p.ID, p.Name);
}
return products;
}
}
这些适配器是他们自己的接口到全局/通用接口的映射。 (在您的情况下,这可能几乎是IBM电子商务界面,但剥离了所有IBM依赖项)
另一种选择是将“导入算法”封装到Strategy。