对建造者模式理解

当对象成员变量太多时,使用建造方法给变量赋值往往变得很臃肿,所以可以这样做

java 复制代码
public class Something {

    private String a;
    private String b;
    private String c;
    private String d;
    private String e;

    public Something(Builder builder) {
        this.a = builder.a;
        this.b = builder.b;
        this.c = builder.c;
        this.d = builder.d;
        this.e = builder.e;
    }

    static class Builder{
        private String a;
        private String b;
        private String c;
        private String d;
        private String e;

        public Builder setA(String a) {
            this.a = a;
            return this;
        }

        public Builder setB(String b) {
            this.b = b;
            return this;
        }

        public Builder setC(String c) {
            this.c = c;
            return this;
        }

        public Builder setD(String d) {
            this.d = d;
            return this;
        }
        public Builder setE(String e) {
            this.e = e;
            return this;
        }

        public Something build() {
            return new Something(this);
        }
    }

    public static void main(String[] args) {
        Something something = new Something.Builder().setA("a").setB("b").
                setC("c").setD("d").setE("e").build();
        System.out.println(something.a);
    }

对传统建造者模式的理解

传统建造者模式,可以将实体类中的部分属性抽象出来并单独建造,并且实体的构建过程交予构造者。我认为这是外观模式和策略模式的结合。

关于传统建造者模式可以看如下文章

秒懂设计模式之建造者模式(Builder pattern) - shusheng007的文章 - 知乎

相关推荐
天天扭码3 分钟前
JavaScript 中字符串转字符数组的两种优雅方式
前端·javascript·代码规范
何遇er6 分钟前
在 AI 编程的热潮下对低代码的思考
前端·低代码·ai编程
何遇er9 分钟前
一句 Prompt 自动生成表单:我在低代码平台里是怎么接入生成式 AI 的
前端·低代码·ai编程
_一条咸鱼_10 分钟前
Vue 指令模块深度剖析:从基础应用到源码级解析(十二)
前端·javascript·面试
ademen12 分钟前
关于 IntelliJ IDEA 中频繁出现的 Kotlin 及其核心作用
java·开发语言·kotlin
薯条不要番茄酱18 分钟前
【JavaEE初阶】多线程重点知识以及常考的面试题-多线程进阶(一)
java·前端·java-ee
大苏打seven20 分钟前
Java学习笔记(多线程):ConditionObject 源码分析
java·笔记·学习
苹果酱056728 分钟前
redis系列--1.redis是什么
java·vue.js·spring boot·mysql·课程设计
卷不动的打工仔32 分钟前
Ubuntu利用docker搭建Java相关环境问题记录
java·ubuntu·docker
只会安静敲代码的 小周39 分钟前
uniapp上传图片时(可选微信头像、相册、拍照)
前端·微信·uni-app