首先是背景。
我们正在开发一个应用程序,用于接收来自n
个sources
的邮件。 source
可能是messaging queue
,FTP
位置,webservice
对特定服务的调用或我们可以想到的任何可能的编排层。我被赋予了设计和开发模块的任务,该模块将充当可配置的资源管理器,它将在处理消息的模块和发送消息的应用程序之间工作。
请您建议我可以在这里使用的任何设计模式或任何最佳实践。我们希望能够灵活地配置此资源并动态更改频道。表示今天消息类型A是否进入队列,明天这可能是预定的Web服务调用。
这方面的任何指示都将不胜感激。
答案 0 :(得分:6)
要获得一个好的答案,您应该发布更多详细信息,但看起来您需要strategy设计模式。
public interface SourceStrategy{
public Message getMessage();
}
public FtpLocation implements SourceStrategy{...}
public MessageQueue implements SourceStrategy{...}
public WebService implements SourceStrategy{...}
public class Application(){
SourceStrategy s;
public void setStrategy(SourceStrategy s){
this.strategy = s;
}
public void readMessage(){
Message m = this.s.getMessage();
}
}