我有一个.NET Web应用程序,需要实现文本消息传递网关功能;即,使用第三方供应商发送文本消息。 Web应用程序当前部署到多个国家/地区,每个国家/地区具有相同的代码库和不同的web.config。
用于创建业务组件的最佳架构策略和设计模式是什么,它将支持不同的文本消息传递网关提供商/供应商,并考虑以下因素:
谢谢!
答案 0 :(得分:0)
您需要在此处使用Strategy pattern。创建一个类似于以下内容的界面:
public interface ITextMessageStrategy{
void Send(TextMessage message)
}
您将为每个供应商提供具体的实施方案。您提到每个供应商的API都有不同的参数。实现这项工作的关键是传递一个对象(在我的示例中为TextMessage),该对象包含任何供应商可能需要的所有数据。您的配置会将国家/地区映射到它将使用的实现的完整类名。然后,您将使用反射来动态实例化正确的文本消息传递策略。如果某些TextMessageStrategy实现在使用之前需要构造函数参数或其他一些复杂的设置,请考虑结合使用Factory method pattern。你经常看到这两种模式。