🧱Builder Pattern – Overview
🧠 Concept
🧱 Key Roles
Role
Description
💻 Java Example – UI Dialog Builder
// ----- Product -----
class Dialog {
private String title;
private String message;
private String okButton;
private String cancelButton;
public void setTitle(String title) { this.title = title; }
public void setMessage(String message) { this.message = message; }
public void setOkButton(String okButton) { this.okButton = okButton; }
public void setCancelButton(String cancelButton) { this.cancelButton = cancelButton; }
public void show() {
System.out.println("Dialog: " + title);
System.out.println("Message: " + message);
System.out.println("[ " + okButton + " ] [ " + cancelButton + " ]");
}
}
// ----- Builder Interface -----
interface DialogBuilder {
void buildTitle(String title);
void buildMessage(String message);
void buildOkButton(String text);
void buildCancelButton(String text);
Dialog getDialog();
}
// ----- Concrete Builder -----
class AlertDialogBuilder implements DialogBuilder {
private Dialog dialog = new Dialog();
public void buildTitle(String title) { dialog.setTitle(title); }
public void buildMessage(String message) { dialog.setMessage(message); }
public void buildOkButton(String text) { dialog.setOkButton(text); }
public void buildCancelButton(String text) { dialog.setCancelButton(text); }
public Dialog getDialog() { return dialog; }
}
// ----- Director -----
class DialogDirector {
private DialogBuilder builder;
public DialogDirector(DialogBuilder builder) { this.builder = builder; }
public Dialog constructWarningDialog() {
builder.buildTitle("Warning");
builder.buildMessage("Unsaved changes will be lost!");
builder.buildOkButton("Continue");
builder.buildCancelButton("Cancel");
return builder.getDialog();
}
}🧠 Flow Summary
Step
Action
Result
🪜 Summary
🧾 Real-world Analogy
🧭 TL;DR
Last updated