【发布时间】:2013-07-21 14:12:19
【问题描述】:
我需要实现基于角色的消息发送功能。
- 角色 A:应通过电子邮件和短信发送消息
- 角色 B:只能通过电子邮件发送消息
- 角色 C:消息只能通过短信发送
- 角色 D:消息应由 Twitter 发送
我必须适应有关哪些角色可以使用哪些消息发送功能的更改,例如我需要能够更改角色 B 以包括短信。任何角色都可能需要任何消息发送功能。
我考虑过使用一个带有方法 SendMessage 的接口 IMessageChannel。然后是三个实现该接口的类,例如电子邮件、短信和推特。我正在考虑使用策略模式和工厂?这是正确的吗?
我应该考虑哪些设计模式来实现这个?
【问题讨论】:
-
除了实现 IMessageChannel 的三个类之外,您还希望创建一个使用复合模式的具体类 MultiChannel,以便您可以将多个 MessageChannel 放入类中并将它们视为一个。然后,您的工厂可以根据角色规则将电子邮件、短信和推特消息通道推送到多通道,并将其传递给使用客户端。
标签: c# design-patterns