建造者模式

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();
 }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值