zoukankan      html  css  js  c++  java
  • Builder生成器模式

    using System;
    using System.Configuration;

    namespace Builder
    {

     public abstract class House
     {
     }
     public abstract class Windows
     {
     }
     public abstract class Wall
     {
     }
     public abstract class Floor
     {
     }
     public abstract class HouseCeiling
     {
     }

     public abstract class Builder
     {
      public abstract void BuilderDoor();
      public abstract void BuildWindows();
      public abstract void BuildWall();
      public abstract void BuildFloor();
      public abstract void BuildHouseCeiling();

      public abstract House GetHouse();
     }
     /// <summary>
     /// ///////////////////////////////////////////////////////
     /// </summary>

     public class RomainHouse:House
     {
     }
     public class RomainWindows:Windows
     {
     }
     public class RomainWall:Wall
     {
     }
     public class RomainFloor:Floor
     {
     }
     public class RomainHouseCeiling:HouseCeiling
     {
     }
     public class RomainBuilder:Builder
     {
      public override void BuilderDoor()
      {
      }
      public override void BuildWindows()
      {
      }
      public override void BuildWall()
      {
      }
      public override void BuildFloor()
      {
      }
      public override void BuildHouseCeiling()
      {
      }

      public override House GetHouse()
      {
       return new RomainHouse();
      }
     }

     /// <summary>
     /// /////////////////////////////////////////////////////////////////////////////////
     /// 不变的主线
     /// </summary>
     public class GameManager
     {
      public static House CreateHouse(Builder builder)
      {
       builder.BuilderDoor();
       builder.BuilderDoor();

       builder.BuildWall();
       builder.BuildWall();

       builder.BuildWindows();
       builder.BuildWindows();

       builder.BuildHouseCeiling();

       builder.BuildFloor();

       return builder.GetHouse();

      }
     }
     public class Test
     {
      /// <summary>
      /// 用到了动态特指
      /// </summary>
      public static void Main()
      {
       House house;
       string builderName,assemblyName;
       assemblyName=System.Configuration.ConfigurationSettings.AppSettings["AssemblyName"];
       builderName=System.Configuration.ConfigurationSettings.AppSettings["BuilderName"];

       System.Reflection.Assembly assembly = System.Reflection.Assembly.Load(assemblyName);
       Type t=assembly.GetType(builderName);

       Builder builder=(Builder)System.Activator.CreateInstance(t);
       house=GameManager.CreateHouse(builder);
      }
     }
    }

  • 相关阅读:
    IP 封包中的 Header 的 Protocol 字段的 值
    二叉树算法题
    PageFile Swap File
    Quick sort C# code(2)
    VS中Sos调试扩展简介 (转帖)
    BUG: "Old format or invalid type library" error when automating Excel on 64 bit server 2008
    Sql server 2005 connection string
    让IE支持自己的协议
    偶然间,我发现了一个秘密能使盗版的windowsXP变成正版
    Excel C# Automation
  • 原文地址:https://www.cnblogs.com/kuailewangzi1212/p/343440.html
Copyright © 2011-2022 走看看