建造者模式涉及的对象:
1:抽象建造者,定义了一个产品抽象的创建过程
2:具体建造者,实现了抽象建造者定位的接口
3:导演者,与客户端打交道,里面有一个抽象建造者的引用,来建造具体的对象
4:产品类
1抽象建造者:
package com.djk.design.factory.build;
public interface Build
{
void setCPU();
void setMemory();
void setDisplay();
Product getProduct();
}
2 具体建造者
package com.djk.design.factory.build;
public class HpBuilder implements Build
{
private Product product;
public HpBuilder()
{
product = new HpProduct();
}
@Override
public Product getProduct() {
return product;
}
@Override
public void setCPU() {
product.setCPU("Hp CPU");
}
@Override
public void setDisplay() {
product.setDisplay("Hp display");
}
@Override
public void setMemory() {
product.setMemory("Hp memory");
}
}
3导演者
package com.djk.design.factory.build;
public class Directory
{
private Build build ;
public Directory(Build build) {
super();
this.build = build;
}
public void composeProduct()
{
build.setCPU();
build.setDisplay();
build.setMemory();
}
public Product getProduct()
{
return build.getProduct();
}
}
4产品:
package com.djk.design.factory.build;
public interface Product
{
void setCPU(String cpu);
void setMemory(String memory);
void setDisplay(String display);
}
package com.djk.design.factory.build;
public class HpProduct implements Product
{
private String CPU;
private String memory;
private String display;
public String getCPU() {
return CPU;
}
public void setCPU(String cPU) {
CPU = cPU;
}
public String getMemory() {
return memory;
}
public void setMemory(String memory) {
this.memory = memory;
}
public String getDisplay() {
return display;
}
public void setDisplay(String display) {
this.display = display;
}
@Override
public String toString() {
return "HpProduct [CPU=" + CPU + ", display=" + display + ", memory="
+ memory + "]";
}
}