博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
builder-theory.cs
阅读量:4638 次
发布时间:2019-06-09

本文共 1615 字,大约阅读时间需要 5 分钟。

  using System;
  using System.Collections.Generic;
  // Builder Pattern               judith Bishop November 2007
  // Simple theory code with one director and two builders
  class Director {
    // Builder uses a complex series of steps
    public void Construct(IBuilder builder) {
      builder.BuildPartA();
      builder.BuildPartB();
      builder.BuildPartB();
    }
  }
  interface IBuilder {
    void BuildPartA();
    void BuildPartB();
    Product GetResult();
  }
  class Builder1 : IBuilder {
    private Product product = new Product();
    public  void BuildPartA() {
      product.Add("PartA ");
    }
    public void BuildPartB() {
      product.Add("PartB ");
    }
    public Product GetResult() {
      return product;
    }
  }
  class Builder2 : IBuilder {
    private Product product = new Product();
    public void BuildPartA() {
      product.Add("PartX ");
    }
    public void BuildPartB() {
      product.Add("PartY ");
    }
    public Product GetResult() {
      return product;
    }
  }
  class Product {
    List <string> parts = new List <string> ();
    public void Add(string part) {
      parts.Add(part);
    }
    public void Display() {
      Console.WriteLine("\nProduct Parts -------");
      foreach (string part in parts)
        Console.Write(part);
      Console.WriteLine();
    }
  }
 
  public class Client {
       
    public static void Main() {
      // Create one director and two builders
      Director director = new Director();
      IBuilder b1 = new Builder1();
      IBuilder b2 = new Builder2();
      // Construct two products
      director.Construct(b1);
      Product p1 = b1.GetResult();
      p1.Display();
      director.Construct(b2);
      Product p2 = b2.GetResult();
      p2.Display();
    }
  }
/* Output
Product Parts -------
PartA PartB PartB
Product Parts -------
PartX PartY PartY
*/

转载于:https://www.cnblogs.com/shihao/archive/2012/05/17/2506761.html

你可能感兴趣的文章
[ASP] asp对数据库的基本操作
查看>>
内存管理笔记(分页,分段,逻辑地址,物理地址与地址转换方式)
查看>>
JAVA 整数的储存
查看>>
EL表达式运算符使用
查看>>
我思故我在
查看>>
Ruby语言入门
查看>>
搭建DNS服务
查看>>
java httpUtil
查看>>
关于Bonobo Git Server的安装
查看>>
在 sublime text 3 中添加 Emmet (ZenCoding)
查看>>
websphere内存溢出
查看>>
传入一个label或者button,传入5s,6和6+的文字尺寸 快速定义文字大小
查看>>
CSS进阶(二十):first-letter :first-line
查看>>
Spring Bean 定义继承
查看>>
Apache Rewrite规则详解
查看>>
IAAS云计算产品畅想-云主机的产品定位
查看>>
introduction of velocity
查看>>
cassandra vs mongo (1)存储引擎
查看>>
VUE router-view 页面布局 (嵌套路由+命名视图)
查看>>
[BZOJ 1053] 反素数
查看>>