package SistemaDeNotificação;
public class Notificacao {
private String destinatario;
private String mensagem;
public Notificacao(String destinatario, String mensagem) {
if (destinatario == null || destinatario.isBlank()) {
throw new IllegalArgumentException("Destinatário não pode ser vazio ou nulo.");
}
if (mensagem == null || mensagem.isBlank()) {
throw new IllegalArgumentException("Mensagem não pode ser vazia ou nula.");
}
this.destinatario = destinatario;
this.mensagem = mensagem;
}
public String getDestinatario() {
return destinatario;
}
public String getMensagem() {
return mensagem;
}
protected String getCabecalho(String tipo) {
return "Enviando " + tipo + " para: " + getDestinatario();
}
@Override
public String toString() {
return "Enviando mensagem para: " + getDestinatario() + "| Conteúdo: " + getMensagem();
}
}
package SistemaDeNotificação;
public class Email extends Notificacao{
private String assunto;
public Email(String destinatario, String assunto, String mensagem) {
super(destinatario, mensagem);
if (assunto == null || assunto.isBlank()) {
throw new IllegalArgumentException("Assunto não pode ser vazio ou nulo.");
}
this.assunto = assunto;
}
public String getAssunto() {
return assunto;
}
@Override
public String toString() {
return getCabecalho("Email") +
"\nAssunto: " + getAssunto() +
"\nCorpo: " + getMensagem();
}
}
package SistemaDeNotificação;
public class Sms extends Notificacao {
public Sms(String destinatario, String mensagem) {
super(destinatario, mensagem);
}
@Override
public String toString() {
return getCabecalho("SMS") +
"\nMensagem: " + getMensagem();
}
}
package SistemaDeNotificação;
public class Push extends Notificacao {
private String titulo;
public Push(String destinatario, String titulo, String mensagem) {
super(destinatario, mensagem);
if (titulo == null || titulo.isBlank()) {
throw new IllegalArgumentException("Titulo não pode ser vazio ou nulo.");
}
this.titulo = titulo;
}
public String getTitulo() {
return titulo;
}
@Override
public String toString() {
return getCabecalho("Push") +
"\nTítulo: " + getTitulo() +
"\nConteúdo: " + getMensagem();
}
}
package SistemaDeNotificação;
public class Principal {
public static void main(String[] args) {
Email email = new Email("cliente@exemplo.com","Promoção especial!","Aproveite nossos descontos esta semana.");
System.out.println(email);
System.out.println("------");
Sms sms = new Sms("(11) 98765-4321","Sua fatura foi paga com sucesso.");
System.out.println(sms);
System.out.println("------");
Push push = new Push("usuario_app","Novidade!","Você tem uma nova mensagem não lida.");
System.out.println(push);
}
}