设计模式之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
阅读全文
0 0
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之 builder
- 设计模式之Builder
- 设计模式之builder
- 学习心得
- 参加工作后的第一篇博文
- eclipse java GUI swing可视化开发插件WindowBuilder
- linux下gsoap编译onvif,实现discovery探测设备
- linux--防火墙配置
- 设计模式之Builder模式
- 其他题目---设计RandomPool结构
- spring整合mybatis逆向工程+PageHelper插件
- [Lintcode] #175 翻转二叉树
- 高斯消元集合
- 用this调用构造函数
- ES 基本使用《三》--terms
- 解决svn中“工作副本已经锁定”,或者svn清理失败的解决方法
- Spinner自定义字体