加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Java Builder模式的两种实现

(2018-02-08 22:19:18)
标签:

builder

java

分类: 原创

 

前话

       Java开发过程中经常会遇到有多个属性的对象,在构造对象时如果使用get/set方法或者带参数的构造方法往往因为参数过多而崩溃,这时builder模式就给我们提供一种解决多个参数构造器问题的方式,让参数构造代码变得简洁,代码可读性也增强。

下面就介绍Java实现Build模式的两种方式:


1.Builder构造器方

public class Person {

 

    

    private String name;

 

    

    private int age;

 

    private Person() {

        

    }

 

    private Person(Builder builder) {

        this.name = builder.name;

        this.age = builder.age;

    }

 

    public static class Builder {

        private String name;

        private int age;

 

        public Builder setName(String name) {

            this.name = name;

            return this;

        }

 

        public Builder setAge(int age) {

            this.age = age;

            return this;

        }

 

        public Person build() {

            return new Person(this);

        }

    }

}

 

        这种实现的方式是Builder类和Person类实现了解耦,但在开发代码过程中需要将Person类中的属性名称都copyBuilder类中使得Build类中属性很多。

 

2. 对象引用方式

public class Person {

 

    

    private String name;

 

    

    private int age;

 

    public static class Builder {

        private Person person;

 

        public Builder setName(String name) {

            this.person.name = name;

            return this;

        }

 

        public Builder setAge(int age) {

            this.person.age = age;

            return this;

        }

 

        public Person build() {

            return new Person();

        }

    }

}

 

这种实现方式的好处是Builder类中只需要引入Person类一个对象就行,无需显示声明每一个属性值。

 

结语

       Builder模式是一种通用设计模式,在每种语言中都有自己的实现方式,对于Java开发者来说如果使用IDEA作为开发工具还可以使用插件自动生成Builder类中的每个属性生成代码。具体使用方式可以google或者百度。


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有