建造者模式
来源:互联网 发布:淘宝客服后台操作 编辑:程序博客网 时间:2024/05/24 02:21
目的是为了解决当构造器所需要的参数过多时,构造器的编写困难
构造器的编写原则
每多一个构造器就多一个参数public builddemo(int param1){}public builddemo(int param1,int param2){}public builddemo(int param1,int param2,int param3){}
但这样编写对构造器的顺序有要求,不能自由选择,bean模式
public builddemo(){}void setParam1();void setParam2();void setParam3();
但这样bean模式线程不安全,而且有时候对set的属性顺序有要求>>建造者模式
public class GirlFriend { int age; int sanwei; String name; String type; public GirlFriend(){ } public GirlFriend(int age,int sanwei){ this.age = age; this.sanwei = sanwei; } public GirlFriend(int sanwei){ this.sanwei = sanwei; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int getSanwei() { return sanwei; } public void setSanwei(int sanwei) { this.sanwei = sanwei; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getType() { return type; } public void setType(String type) { this.type = type; } //省略....一大堆构造方法 //通过建造者模式,可以在创建该对象出来时,快速指定它的各种属性 public static class Builder{ int age = 18; int sanwei = 200; String name = "大桥未久"; String type = "知名女星"; public Builder age(int age){ this.age = age; return this; } public Builder sanwei(int sanwei){ this.sanwei = sanwei; return this; } public Builder name(String name){ this.name = name; return this; } public Builder type(String type){ this.type = type; return this; } public GirlFriend build(){ GirlFriend girlFriend = new GirlFriend(); //根据先前的各种....方法来设置属性 girlFriend.setSanwei(this.sanwei); girlFriend.setAge(this.age); girlFriend.setName(name); girlFriend.setType(this.type); return girlFriend; } }}
阅读全文
0 0
- Builder 建造者模式
- 建造者模式
- 设计模式-------建造者
- 建造者模式
- 建造者模式(Builder)
- 建造者模式(Builder)
- 建造者模式
- 建造者模式 - builder
- 建造者模式
- Builder建造者模式
- 建造者模式(Builder)
- 建造者模式(builder)
- 建造者模式
- java建造者模式
- 建造者模式
- 建造者模式
- 建造者模式(Builder)
- 建造者模式
- HBase regions分布不均匀的解决
- CMake交叉编译配置
- bzoj3376 [Usaco2004 Open]Cube Stacking 方块游戏
- 透彻理解匿名函数
- Qt使用Windows Api模拟鼠标单击双击滚轮事件
- 建造者模式
- HDU 1019 Least Common Multiple(三个注意的点)
- html中判断phone与pc的ce
- myeclipse下src/main/resources/META-INF下的资源文件不会编译到classpath下
- 【演讲实录】金融级数据库技术与实践
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次,找出这两个数字
- 机器学习之线性回归:OLS 无偏估计及相关性python分析
- 简单说 chrome浏览器 必知必会的小技巧
- php批量生成产品编号:xxx.000001,并依次递增