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);
      }
     }
    }

  • 相关阅读:
    解决ipad连接不上电脑的问题
    解决ping 127.0.0.1 一般故障 问题
    DeepLearning.ai学习笔记(五)序列模型 -- week1 循环序列模型
    DeepLearning.ai学习笔记(四)卷积神经网络 -- week4 特殊应用:人力脸识别和神经风格转换
    pip安装 exception记录
    Ubuntu ./configure 半途终止 导致没有生成makefile文件 解决方法
    Open Data Structure Templates
    Win7 下安装VirtualBox 没有Ubuntu 64bit 选项问题
    DataStructure 排序 源码实现
    DS实验题 融合软泥怪-2 Heap实现
  • 原文地址:https://www.cnblogs.com/kuailewangzi1212/p/343440.html
Copyright © 2011-2022 走看看