Sync Factory Method, Abstract Factory, Builder, Prototype to Java 25; fix post/code mismatches
This commit is contained in:
@@ -1,17 +1,23 @@
|
||||
package factorymethod;
|
||||
|
||||
public class Main {
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println("=== Factory Method Pattern Demo ===\n");
|
||||
|
||||
NotificationService[] services = {
|
||||
new EmailService("alice@example.com"),
|
||||
new SmsService("+1-555-0123"),
|
||||
new PushService("device-token-abc123")
|
||||
};
|
||||
// The client only knows about NotificationSender (the Creator)
|
||||
NotificationSender sender;
|
||||
|
||||
for (NotificationService service : services) {
|
||||
service.notifyUser("Your order #1042 has been shipped!");
|
||||
}
|
||||
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%");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user