public class Main {
public static void main(String args[])
{
Director d=new Director();
Builder b1=new ConcreteBuilder1();
Builder b2=new ConcreteBuilder2();
d.Construct(b1);
Product p1=b1.GetResult();
p1.Show();
d.Construct(b2);
Product p2=b2.GetResult();
p2.Show();
}
}
class Product{
List<String> parts=new ArrayList<String>();
public void Add(String part) {
parts.add(part);
}
public void Show() {
System.out.println("产品 创建-----");
for(String part:parts) {
System.out.println(part);
}
}
}
abstract class Builder{
public abstract void BuildPartA();
public abstract void BuildPartB();
public abstract Product GetResult();
}
class ConcreteBuilder1 extends Builder{
private Product p=new Product();
public void BuildPartA() {
// TODO Auto-generated method stub
p.Add("零件A");
}
public void BuildPartB() {
// TODO Auto-generated method stub
p.Add("零件B");
}
public Product GetResult() {
// TODO Auto-generated method stub
return p;
}
}
class ConcreteBuilder2 extends Builder{
private Product p=new Product();
public void BuildPartA() {
// TODO Auto-generated method stub
p.Add("部件X");
}
public void BuildPartB() {
// TODO Auto-generated method stub
p.Add("部件Y");
}
public Product GetResult() {
// TODO Auto-generated method stub
return p;
}
}
class Director{
public void Construct(Builder b) {
b.BuildPartA();
b.BuildPartB();
}
}
建造者模式
最新推荐文章于 2024-08-27 17:19:33 发布