package notificacao.de.sistema;
public abstract class Notificacao {
protected String destinatario;
protected String mensagem;
public Notificacao(String destinatario, String mensagem) {
this.destinatario = destinatario;
this.mensagem = mensagem;
}
public abstract void enviar();
}
package notificacao.de.sistema;
public class Email extends Notificacao implements MensagemNotificacao{
private String assunto;
public Email(String destinatario, String mensagem, String assunto) {
super(destinatario, mensagem);
this.assunto = assunto;
}
public String mensagemNotificacao(){
return """
Enviando E-mail para: %s
Assunto: %s
Corpo: %s
""".formatted(destinatario, assunto, mensagem);
}
@Override
public void enviar() {
System.out.println(mensagemNotificacao());
}
}
package notificacao.de.sistema;
public class SMS extends Notificacao{
public SMS(String destinatario, String mensagem) {
super(destinatario, mensagem);
}
@Override
public void enviar() {
System.out.println("Enviando SMS para: " + destinatario +"\n" + "Mensagem: " + mensagem + "\n");
}
}
package notificacao.de.sistema;
public class Push extends Notificacao implements MensagemNotificacao{
private String titulo;
public Push(String destinatario, String mensagem, String titulo) {
super(destinatario, mensagem);
this.titulo = titulo;
}
public String mensagemNotificacao(){
return """
Enviando Push para: %s
Titulo: %s
Conteúdo: %s
""".formatted(destinatario, titulo, mensagem);
}
@Override
public void enviar() {
System.out.println(mensagemNotificacao());
}
}
package notificacao.de.sistema;
public interface MensagemNotificacao {
public String mensagemNotificacao();
}
package notificacao.de.sistema;
public class SistemaDeNotificacao {
public static void main(String[] args) {
Email email1 = new Email("cliente@exemplo.com", "Aproveite nossos descontos esta semana.", "Promoção especial!");
SMS sms1 = new SMS("(99) 98888-8888", "Sua fatura foi paga com sucesso");
Push push1 = new Push("usuario_app ", "Você tem uma nova mensagem não lida.", "Novidade!");
email1.enviar();
sms1.enviar();
push1.enviar();
}
}