一 建造者模式
参考文献:菜鸟教程建造者模式
1.1 今日故事会
本故事纯属瞎扯,不涉及任何宗教,政治,种族,文化等,如有冒犯,请联系作者删除!
故事背景:上帝考虑到人种多样性可能会促进人类社会发展,因此来到九重天找女娲,于是展开如下对话:
上帝:女神,近来可好?
女娲:放,别套近乎!
上帝:害,能帮我造几种不同的人类吗?
女娲:五毛特效和百元特效,你要哪种?
上帝:先来三种五毛特效的吧,我要黄种人,白种人和黑种人。黄种人要是黄皮肤,黑头发,国字脸,白种人要白皮肤,黄头发和锥子脸,还有黑种人我要黑皮肤,黑头发,随缘脸,三天之后我来拿模型。
上帝:钱嘛,好说,不差你的!
于是,女娲开始撸头发了,心想这小子不会过两天改需求吧,我要怎么滴才能自由造出不同的人呢,免得这小子坑我。嘶。。。。。。(撸头发,掉头发)
终于,女娲想到个办法,我给万能炉配个ipad,让他自己在ipad上,选择肤色,发色,脸型自由组合,他爱怎么瞎折腾都行。
二 实验
2.1 万能炉
public class HumanBuilder {
private String skin;
private String hair;
private String face;
public HumanBuilder() {
}
public static class Builder{
private HumanBuilder humanBuilder = new HumanBuilder();
public Builder skin(String skin){
humanBuilder.skin = skin;
return this;
}
public Builder hair(String hair){
humanBuilder.hair = hair;
return this;
}
public Builder face(String face){
humanBuilder.face = face;
return this;
}
public HumanBuilder build(){
return humanBuilder;
}
}
@Override
public String toString() {
return "HumanBuilder{" +
"skin='" + skin + '\'' +
", hair='" + hair + '\'' +
", face='" + face + '\'' +
'}';
}
}
2.2 上帝
public class God {
public static void main(String[] args) {
HumanBuilder build = new HumanBuilder.Builder().skin("黄皮肤").hair("黑头发").face("国字脸").build();
System.out.println(build.toString());
}
}
三 框架中的设计模式
3.1 mybatis中的建造者模式
3.1.1 Environment类
3.1.2 ParameterMap类
3.1.3 SqlSessionFactory类