public interface IsendMessage {
public void send(messageContext context);
}
上面的接口用于发送消息。 它可以是电子邮件,短信,JMS。 这里的方法参数接受消息上下文。
我怎样才能使它通用以接受所有类型的消息的参数。 像电子邮件一样,我们必须, 从 , 密码, 附加 , SMTP 服务器属性
但是 短信有不同的属性 . 那么我怎样才能使该接口通用。EmailSender 和 SmsSender 可以实现此 IsendMessage 接口来发送消息。
这里可以使用任何设计模式?
这是否有名字,但我会选择这样的东西:
public interface IsendMessage<T extends MessageContext> {
public void send(T context);
}
public interface MessageContext {
};
public class SMSMessageContext implements MessageContext{}
public class SMSSender implements IsendMessage<SMSMessageContext>{
@Override
public void send(SMSMessageContext context) {
}
}
其中,您的IsendMessage使用通用类型的MessageContext。通过这种方式,IsendMessage 实现可以访问具体类型的 MessageContext 及其所有方法。在MessageContext中,根据其具体类型,您可以放置发送消息所需的任何内容,即:对于电子邮件:收件人,发件人,主题,对于短信:短信文本,电话号码