建造者模式
建造者模式是生成器模式,是创建一个复杂对象额创建型模式,
定义:讲一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
在建造者模式中有如下角色:
Director:导演类,负责安排已有模块的顺序,然后通知Builder开始建造
Builder: 抽象Builder类,规范产品的组件,一般由子类实现。
ConcreteBulider: 具体建造者,实现抽象类Builder类定义的所有方法,并且返回一个组建好的对象
Product: 产品类
1.建造者模式的简单实现
1.1创建产品类
组装一台计算机,呗抽象为Computer类,有Cpu,主板,内存,并设置三个方法来设置Cpu、主板、内存
public class Computer
{
private String mCpu;
private String mMainboard;
private String mRam;
public String getmCpu()
{
return mCpu;
}
public void setmCpu(String mCpu)
{
this.mCpu = mCpu;
}
public String getmMainboard()
{
return mMainboard;
}
public void setmMainboard(String mMainboard)
{
this.mMainboard = mMainboard;
}
public String getmRam()
{
return mRam;
}
public void setmRam(String mRam)
{
this.mRam = mRam;
}
}
1.2创建Builder类规范产品的组建
生成一个Builder抽象类为安装提供方法
public abstract class Builder
{
public abstract void builderCpu(String s);
public abstract void buildermMainboard(String s);
public abstract void builderRam(String s);
public abstract Computer creater();
}
实现Builder组装电脑
public class MoonComputerBuilder extends Builder
{
private Computer computer = new Computer();
@Override
public void builderCpu(String s)
{
computer.setmCpu("英特尔");
}
@Override
public void buildermMainboard(String s)
{
computer.setmMainboard("微星");
}
@Override
public void builderRam(String s)
{
computer.setmRam("镁光");
}
@Override
public Computer creater()
{
return computer;
}
}
1.3导演类统一组装电脑
也可以使用导演类用来规范组装电脑
public class Director
{
Builder builder = null;
public Director(Builder builder)
{
this.builder = builder;
}
public Computer CreateComputer(String cpu, String Main, String Ram)
{
builder.builderCpu(cpu);
builder.buildermMainboard(Main);
builder.builderRam(Ram);
return builder.creater();
}
}