您的位置:首页 > 新闻 > 资讯 > 小程序赚钱吗_南昌网站建设模板总部_如何在百度发布广告_软件推广

小程序赚钱吗_南昌网站建设模板总部_如何在百度发布广告_软件推广

2025/1/7 21:29:10 来源:https://blog.csdn.net/tiantiantbtb/article/details/144780447  浏览:    关键词:小程序赚钱吗_南昌网站建设模板总部_如何在百度发布广告_软件推广
小程序赚钱吗_南昌网站建设模板总部_如何在百度发布广告_软件推广

 为什么要用建造者模式,例如Person p=new Person(10个参数),这样会很头疼,参数一多,无法分辨

灵活性:可以按需设置,无需定义多个构造方法

可读性:链式调用使代码简介名了

扩展性:如果增加了新属性,只需要在Builder中添加相应的方法

public class Person {
    // 属性
    private String name;
    private int age;
    private String email;

    // 私有构造函数,防止直接实例化
    private Person(Builder builder) {
        this.name = builder.name;
        this.age = builder.age;
        this.email = builder.email;
    }

    // Getter 方法
    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public String getEmail() {
        return email;
    }

    // 静态内部类 Builder
    public static class Builder {
        private String name;
        private int age;
        private String email;

        // 设置 name 并返回 Builder 对象
        public Builder setName(String name) {
            this.name = name;
            return this;//this指代当前Builder对象
        }

        // 设置 age 并返回 Builder 对象
        public Builder setAge(int age) {
            this.age = age;
            return this;
        }

        // 设置 email 并返回 Builder 对象
        public Builder setEmail(String email) {
            this.email = email;
            return this;
        }

        // 构建 Person 对象
        public Person build() {
            return new Person(this);
        }
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", email='" + email + '\'' +
                '}';
    }
}
 

使用方式

public class Main {
    public static void main(String[] args) {
        // 使用建造者模式构造 Person 对象
        Person person = new Person.Builder()
                .setName("John Doe")
                .setAge(30)
                .setEmail("john.doe@example.com")
                .build();

        // 输出 Person 对象
        System.out.println(person);
    }
}
 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com