zoukankan      html  css  js  c++  java
  • buildertheory.cs

      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
    */
  • 相关阅读:
    hive表链接
    hive聚合函数和表生成函数
    hive条件函数
    hive日期函数
    hive之size函数和cast转换函数
    hive数学函数
    hive排序
    5G基站概述
    MEC边缘云平台
    ELK日志系统的架构
  • 原文地址:https://www.cnblogs.com/shihao/p/2506761.html
Copyright © 2011-2022 走看看