zoukankan      html  css  js  c++  java
  • Factory模式的学习

    using System;
    using System.Windows.Forms;
    namespace Factory
    {
     public abstract class Road
     {}
     public abstract class Builld
     {}
     public abstract class Tunnel
     {}
     public abstract class Jungle
     {}
     public abstract class FacilitiesFactory
     {
      public abstract Road CreateRoad();
      public abstract Builld CreateBuilld();
      public abstract Tunnel CreateTunnel();
      public abstract Jungle CreateJungle();
     }


     public class GameManager
     {
      Road road;
      Builld builld;
      FacilitiesFactory facilitiesFactory;
      public GameManager(FacilitiesFactory facilitiesFactory)//只有此处可变化,可通过配置文件变化
      {
       this.facilitiesFactory=facilitiesFactory;
      }
      public void BuildFacilitiles()
      {
       road=this.facilitiesFactory.CreateRoad();
       builld=this.facilitiesFactory.CreateBuilld();
      }
      public void Run()
      {
       MessageBox.Show(road.GetType().ToString());
       MessageBox.Show(builld.GetType().ToString());
      }
     }
     public class Test
     {
      public static void Main()
      {
       GameManager g=new GameManager(new MordenFacilitiesFactory());
       g.BuildFacilitiles();
      }
     }

     public class MordenRoad:Road
     {}
     public class MordenBuilld:Builld
     {}
     public class MordenTunnel:Tunnel
     {}
     public class MordenJungle:Jungle
     {}
     public class MordenFacilitiesFactory:FacilitiesFactory
     {
      public override Road CreateRoad()
      {
       return new MordenRoad();
      }
      public override Builld CreateBuilld()
      {
       return new MordenBuilld();
      }
      public override Tunnel CreateTunnel()
      {
       return new MordenTunnel();
      }
      public override Jungle CreateJungle()
      {
       return new MordenJungle();
      }
     }

     public class ClassicRoad:Road
     {}
     public class ClassicBuilld:Builld
     {}
     public class ClassicTunnel:Tunnel
     {}
     public class ClassicJungle:Jungle
     {}
     public class ClassicFacilitiesFactory:FacilitiesFactory
     {
      public override Road CreateRoad()
      {
       return new ClassicRoad();
      }
      public override Builld CreateBuilld()
      {
       return new ClassicBuilld();
      }
      public override Tunnel CreateTunnel()
      {
       return new ClassicTunnel();
      }
      public override Jungle CreateJungle()
      {
       return new ClassicJungle();
      }
     }
    }

  • 相关阅读:
    charindex代替like并非"更快更全面"
    SQLServer2005中的几个统计技巧
    SQLServer获取Excel中所有Sheet
    SQLServer2005的查询独占模拟
    SSAS事实表和维度表数据类型必须一致
    monodevelop 出现has line endings which differ from the policy settings.的解决方法
    mono for android Main.axml
    vs2010 错误提示框:文件加载 使用 简体中文(GB2312
    在Virtual Machine上运行Hello China的方法和工具
    embed基本语法
  • 原文地址:https://www.cnblogs.com/kuailewangzi1212/p/343388.html
Copyright © 2011-2022 走看看