设计模式之Builder模式

来源:互联网 发布:windows自动修复 编辑:程序博客网 时间:2024/06/06 10:04

     最近在学习builder模式,尝试编写代码,对于内部类的使用需要比较熟练否则会出不少错误(关于内部类的使用可以参考我的另外一篇博文),下面我给出两种方式。

     第一种

public class people {    private int age;    private String name;        public int getAge() {        return age;    }    public String getName() {        return name;    }static builder builder(){return new people().new builder();}class builder{builder age(int a){age=a;return this;}builder name(String n){name=n;return this;}people build(){return people.this;}}}

第二种

public class man {private int age;private String name;public man() {}public man(int a,String n) {age=a;name=n;}public int getAge() {return age;}public String getName() {return name;}static builder builder(){return new builder();}    static class builder{private int age;private String name;builder age(int a){age=a;return this;}builder name(String n){name=n;return this;}man2 build(){return new man(age,name);}}

补充:使用lombok,实现代码和第二种应该相同

import lombok.Builder;@Builderclass woman {private int age;private String name;public int getAge() {return age;}public String getName() {return name;}

测试代码:


people people=people.builder().age(20).name("xiaowang").build();        System.out.println(people.getAge()+people.getName());man man=man.builder().age(22).name("xiaoming").build();System.out.println(man.getAge()+man.getName());woman woman=woman.builder().age(24).name("xiaohong").build();System.out.println(woman.getAge()+woman.getName());


结果为

20xiaowang22xiaoming24xiaohong




原创粉丝点击