0

我们有一个使用 C# 构建的应用程序,用于发送通知。对于发送通知,我们使用第三方 SOAP 服务。现在我们必须添加对新的第三方 API 的支持,它提供相同的发送通知功能。

现有的 C# 应用程序使用纯 OOP 概念。由于现在我们必须修改应用程序以支持新的供应商,我正在考虑使用/应用一些设计模式(如果可用),以便我们将来可以轻松地支持其他供应商。

有没有人遇到过这个问题或知道哪种设计模式可以解决这个问题。

任何帮助/指针将不胜感激。

谢谢,拉胡尔

4

2 回答 2

1

您将使用提供发送消息所需功能的外观。您的应用程序只能与 Facade 一起使用,而不能直接与供应商的 SOAP 服务一起使用。

对于每个供应商,您创建一个使用该供应商的 SOAP 服务的外观的实现。这个实现可以存在于一个新的程序集中,将您的应用程序与供应商的 SOAP 服务完全分离。您现在甚至可以支持不基于 SOAP 的其他机制。

于 2013-07-10T11:03:36.807 回答
0

听起来您正在寻找的是适配器模式。

适配器模式是当您在内部系统和从中获取数据的地方之间设置一个层时。该层所做的只是将数据从它们的格式转换为您的格式。

这意味着,如果您有多个数据源,您可以将它们全部转换为一种可接受的格式并将它们传递到您的系统中,如果最终的数据格式发生变化,您只需要更新您的适配器,而不是更新较低级别的代码。

编辑:丹尼尔是对的,门面更合适。我所描述的适配器更多地是关于在源之间发送数据。外观以类似的方式位于源之间并转换方法,而不是在我的转换数据的解决方案中。

于 2013-07-10T11:12:32.863 回答