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%"); } }