您的位置:首页 > 编程语言 > Java开发

Java 建造者模式

2015-09-13 11:29 405 查看
描述:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。建造模式是将复杂的内部创建封装在内部,对于外部调用的人来说,只需要传入建造者和建造工具,对于内部是如何建造成成品的,调用者无需关心。“建造的内容”是由建造者实现,“建造的顺序”由指导者决定。

与抽象工厂的区别:Builder模式遵循一定的步骤一步一步的创建对象,这样一来,按照时间顺序创建对象就显得非常重要了。

class Person {
String head, body, foot;

public String toString() {
return head + body + foot;
}
}
//抽象的建造者
interface BuildPerson {
void head();

void body();

void foot();
//建造者返回一个建造好的person
Person getPerosn();
}
//男人的建造者
class BuildMan implements BuildPerson {
private Person person;

public BuildMan() {
person = new Person();
}

public void head() {
person.head = "构造一个男人的头";
}

public void body() {
person.body = "构造一个男人的身体";
}

public void foot() {
person.foot = "构造一个男人的脚";
}

public Person getPerosn() {
// TODO Auto-generated method stub
return person;
}

}
//女人的建造者
class BuildWoMan implements BuildPerson {
private Person person;

public BuildWoMan() {
person = new Person();
}

public void head() {
person.head = "构造一个女人的头";
}

public void body() {
person.body = "构造一个女人的身体";
}

public void foot() {
person.foot = "构造一个女人的脚";
}

public Person getPerosn() {
// TODO Auto-generated method stub
return person;
}

}
//指导者
class Director {
public Person construct(BuildPerson builder) {
builder.head();
builder.body();
builder.foot();
return builder.getPerosn();
}
}
//客户端
public class Client {

/**
* @param args
*/
public static void main(String[] args) {
Director director = new Director();
//建造一个男人,传入男人的建造者
Person person = director.construct(new BuildMan());
System.out.println(person);
//建造一个女人,传入女人的建造者
person = director.construct(new BuildWoMan());
System.out.println(person);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息