设计模式 | Builder 模式

148 阅读1分钟

定义

将一个复杂对象的构建和它的表示分离,使得同样的构建过程可以创建不同的表示。

使用场景

  • 初始化一个对象特别复杂,例如:Android 中的 AlertDialog。
  • 对同样的一些方式执行顺序不同时,产生不同的事件结果。

Java 代码示例

public class Dialog {
    
    private String title;
    private String content;
    
    private Dialog() {
        
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public void setContent(String content) {
        this.content = content;
    }
    
    public static class Builder {
        private String title;
        private String content;
        
        public Builder setTitle(String title) {
            this.title = title;
            return this;
        }

        public Builder setContent(String content) {
            this.content = content;
            return this;
        }

        public Dialog create() {
            Dialog dialog = new Dialog();
            dialog.setTitle(title);
            dialog.setContent(content);
            return dialog;
        }
    }
}
new Dialog.Builder().setTitle("title").setContent("content").create();