建造者设计模式
建造者设计模式的定义: 将一个复杂的对象的构建与它的表示分离,是的同样的构建过程可以创建不同的表示。
核心类
- 产品类 Person。
- Builder 抽象建造者,规范产品的组建,一般是由子类实现具体的组建过程。
- ConcreteBuider 具体建造者,具体的创建对象的类。
- Directror 统一组建过程。
代码示例
产品角色:包含多个组成部件的复杂对象。
class Person{
private String head;
private String body;
private String foot;
public void setHead(String head) {
this.head = head;
}
public void setBody(String body) {
this.body = body;
}
public void setFoot(String foot) {
this.foot = foot;
}
public void show(){
System.out.println("这个人"+head+":"+body+":"+foot);
}
}
抽象建造者 包含创建产品各个子部件(属性)的抽象方法。
abstract class Builder{
//protecte修饰 子类可以操作这个对象
protected Person person=new Person();
abstract void head();
abstract void body();
abstract void foot();
public Person getPerson(){
return person;
}
}
具体建造者:实现了抽象建造者接口。
class ConcreteBuider extends Builder{
@Override
void head() {
person.setHead("头");
}
@Override
void body() {
person.setBody("身体");
}
@Override
void foot() {
person.setFoot("脚");
}
}
指挥者:调用建造者中的方法完成复杂对象的创建。
class Director{
private Builder builder;
public Director(Builder builder){
this.builder=builder;
}
public Person construct(){
builder.head();
builder.body();
builder.foot();
return builder.getPerson();
}
}
客户类
public class Client{
public static void main(String[] args) {
Builder builder=new ConcreteBuider();
Director director=new Director(builder);
Person construct = director.construct();
construct.show();
}
}