您的位置:首页 > 其它

设计模式笔记-创建者模式

2014-09-20 11:27 134 查看
创建者模式和工厂模式的区别是:创建者模式关注整体和部分的组建,而工厂模式关注对象产生和创建的分离。

public interface Builder {
public void buildProductId();
public void buildProductName();
public Product getProduct();
}
public class ConcreteBuilder1 implements Builder {
private Product product = new Product();

public void buildProductId() {
product.setId(1);
}

public void buildProductName() {
product.setName( "product1");
}

public Product getProduct() {
return product ;
}
}
public class ConcreteBuilder2 implements Builder {
private Product product = new Product();

public void buildProductId() {
product.setId(2);
}

public void buildProductName() {
product.setName( "product2");
}

public Product getProduct() {
return product ;
}
}
public class Product {
private int id ;
private String name ;
public int getId() {
return id ;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name ;
}
public void setName(String name) {
this.name = name;
}
public String toString() {
return "productId :" + this.id + " productName : " + this.name ;
}
}
public class Director {
private Builder builder ;

public Director(Builder builder) {
this.builder = builder;
}
public void buildProduct() {
builder.buildProductId();
builder.buildProductName();
}

public Product getResult() {
return builder .getProduct();
}
}
public class BuilderClient {
public static void main(String args[]) {
Builder builder = new ConcreteBuilder1();
Director director = new Director(builder);
director. buildProduct();
System. out.println(director.getResult());
Builder builder2 = new ConcreteBuilder2();
director = new Director(builder2);
director. buildProduct();
System. out.println(director.getResult());
}

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