建造者模式的定义:将一个复杂对象的构造与它的表示分离,使得同样的构造过程可以创建不同的表示。
作用:将复杂的,易出错的创建对象过程进行封装。使用的时候,只需要设置参数,最后再build就可以轻松创建对象。
复杂过程举例:汽车包括方向盘,轮子,发动机等各种部件。构建一辆汽车对象就是一个复制的过程。
易出错举例:一些需要按照一定顺序去构建一个对象。例如一个汉堡,它是有顺序的,最底下放面包,然后放鸡腿,放生菜,再放面包。假如顺序反了,先放生菜,放鸡腿,再放面包,再放面包。这就不是汉堡了。创建的结果就不一样。
下面是需要顺序来创建对象的例子,怎么用使用建造者模式,保证按顺序创建MyData的
以上这个问题要保证设置name时,保证先设置id。我们来实现一下:
public classTest {
public static voidmain(String[] args){
Test test =newTest();
test.testBuild();
}
private voidtestBuild() {
MyData myData =newMyBuilder().setId("2").setName("ssz").build();
System.out.print("id的值:"+myData.getId()+" "+"name的值:"+myData.getName());
}
classMyBuilder {
Stringid;
Stringname;
publicMyData build(){
MyData myData =newMyData();
myData.setId(id);
myData.setName(name);
returnmyData;
}
publicMyBuilder setId(String id){
this.id=id;
return this;
}
publicMyBuilder setName(String name){
this.name=name;
return this;
}
}
classMyData {
privateStringid;
privateStringname;
publicString getId() {
returnid;
}
public voidsetId(String id) {
this.id= id;
}
publicString getName() {
returnname;
}
public voidsetName(String name) {
this.name= name+id;//设置name,需要先设置id为前提。}
}
}
总之,建造者模式,就是把复杂,易出错的进行封装。便于创建对象。
ps:
公众号:android_dkx
我的博客:http://blog.csdn.NET/shenshizhong
我的简书:http://www.jianshu.com/users/345daf0211ad/latest_articles
网友评论