2015-12-05 20 views
0
public interface IsendMessage { 
public void send(messageContext context); 
} 

上面的接口是发送消息。它可以是电子邮件,短信,JMS。这里的方法参数接受messageContext。如何更改以下界面以接受不同类型邮件系统的参数。任何设计模式?

我该如何使该泛型接受所有类型的消息的参数。像我们必须从,密码,附件,smtp服务器属性的电子邮件

但SMS具有不同的属性。所以我怎样才能使这个接口通用,以便。 EmailSender和SmsSender可以实现这个IsendMessage接口来发送消息。

任何设计模式都可以在这里使用?

回答

0

我不知道这是否有名字,但我会像这样的东西去:

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的取决于其具体类型,你可以把任何你需要发送的消息,即:对于电子邮件:以从,主题短信:短信,电话号码

+0

leonz - 内MessageContext中发生的事情,就像电子邮件属性 - 到,从 – vishwas

相关问题