概述
序
昨天晚上我们来的是单例模式,简单明了。我们今天聊聊另一种设计模式,建造者模式,我们的小菜再次出场,非要和大鸟吃路边摊,结果吃的不爽(因为很难吃)大鸟就生搬出了一个设计模式,叫做建造者模式,听着就跟吃饭没啥关系。
建造者模式
建造者模式,题主只是看过,在实际工作中并没有用过建造者模式。该模式是在创建相同类别,但在某些细节上具有一定区别的类时使用,重点来了,这个建造过程是很复杂的,例如女娲造人。。。我擦,别想歪不是啪啪啪,是捏泥人。
建造者模式类图
其实画了类图也记不住,今天不想画。
示例
我们要造人。。。不是,是女娲要捏泥人。女娲捏了男人,又捏了女人。造人过程中发现无论是男人还是女人,都一样一个鼻子两个眼睛一张嘴两条胳膊两条腿。那就可以用一个模版就造出来了。
public class Person{
public int leg;
public int head;
public int arm;
public void createHead(){
System.out.println("一个脑袋");
}
public void createLeg(){
System.out.println("两条腿");
}
public void createArm(){
System.out.println("两只胳膊");
}
}
但女人需要生孩子,男人需要打猎找吃的。因此我们一个Person类就搞不定了,需要Man类和Woman类。
public class Person{
...
public void Other(){}
}
public class Man extends Person{
@Override
public void Other(){
System.out.println("打猎");
}
}
public class Woman extends Person{
@Override
public void Other(){
System.out.println("生孩子");
}
}
那么下面女娲大神出场
public class NvWa{
public Person createPerson(Builder builder){
builder.createHead();
builder.createLeg();
builder.createArm();
builder.other();
return builder.burn();
}
}
public interface Builder{
public void createHead();
public void createLeg();
public void createArm();
public void other();
public Person burn();
}
public class ManBuilder extends Builder{
public Person person = new Man();
public void createHead(){
person.createHead();
}
public void createLeg(){
person.createLeg();
}
public void createArm(){
person.createLeg();
}
public void createOther(){
person.createOther();
}
public Person burn(){
return person;
}
}
public class WomanBuilder extends Builder{
public Person person = new Woman();
public void createHead(){
person.createHead();
}
public void createLeg(){
person.createLeg();
}
public void createArm(){
person.createLeg();
}
public void createOther(){
person.createOther();
}
public Person burn(){
return person;
}
}
最终我们调用这个过程就是
public class Test{
public static void main(String[] args){
NvWa nvwa = new NvWa();
nvwa.createPerson(new ManBuilder());
nvwa.createPerson(new WomanBuilder());
}
}
结语
这就是建造者模式,建造者模式不是说建造的东西如何如何,而是在于建造者,也就是我们的女娲,它将建造过程统一起来这样在建造时,就不需要一直记着该建造哪一步了。重点是什么,重点是我们的女娲(^_^怎能如此邪恶)
最后
以上就是着急小丸子为你收集整理的大话设计模式-第五夜序建造者模式建造者模式类图示例结语的全部内容,希望文章能够帮你解决大话设计模式-第五夜序建造者模式建造者模式类图示例结语所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复