我们有一个使用C#构建的应用程序用于发送通知。对于发送通知,我们使用第三方SOAP服务。现在我们必须添加对新的第三方api的支持,它提供了相同的发送通知功能。
现有的C#应用程序使用普通的OOP概念。从现在起,我们必须修改应用程序以支持我正在考虑使用/应用一些设计模式的新供应商,以便我们可以在将来轻松支持其他供应商。
是否有人遇到此问题或意识到哪种设计模式可以解决问题。
非常感谢任何帮助/指示。
谢谢, 拉胡尔
答案 0 :(得分:1)
您将使用提供发送邮件所需功能的Facade。您的应用程序仅适用于Facade,而不是直接与供应商SOAP服务一起使用。
对于每个供应商,您创建使用此供应商的SOAP服务的Facade实现。此实现可以存在于新的程序集中,完全将应用程序与供应商的SOAP服务分离。您现在甚至可以支持非基于SOAP的其他机制。
答案 1 :(得分:0)
听起来你正在寻找的是适配器模式。
适配器模式是指在内部系统和从中获取数据的位置之间设置图层。该层所做的就是将数据从其格式转换为您的格式。
这意味着如果您有多个数据源,您可以将它们全部转换为一种可接受的格式并将它们传递到您的系统中,如果它们的数据格式发生变化,您只需要更新适配器,而不是更低级别码。
编辑:Daniel是对的,Facade更合适。像我所描述的适配器更多的是在源之间发送数据。外观以类似的方式位于源之间并转换方法,而不是在我的解决方案中转换数据。