24 lines
711 B
Java
24 lines
711 B
Java
package factorymethod;
|
|
|
|
public class Main {
|
|
|
|
public static void main(String[] args) {
|
|
|
|
// The client only knows about NotificationSender (the Creator)
|
|
NotificationSender sender;
|
|
|
|
sender = new EmailSender();
|
|
sender.notify("alice@example.com", "Your order has shipped!");
|
|
|
|
sender = new SmsSender();
|
|
sender.notify("+1-555-0100", "OTP: 482910");
|
|
|
|
sender = new PushSender();
|
|
sender.notify("device-token-xyz", "New message from Bob");
|
|
|
|
// Adding Slack: just swap the creator. Client code doesn't change.
|
|
sender = new SlackSender(); // new class, nothing else touched
|
|
sender.notify("#alerts", "CPU usage above 90%");
|
|
}
|
|
}
|