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

  • 相关阅读:
    九宫格代码
    数组相关
    动画设置模式大全
    extjs 学习小窍门
    linux mysql root密码重置
    (ExtJs 3.4)Ext.Ajax.request的同步请求实现
    Ext中renderer用法及参数
    Extjs 3.4 复选框的,默认选中 ,禁用,(纯属于自己代码中需要,总结!)
    linux部署安装nginx
    报表报500,tomcat日志显示报错:Can't connect to X11 window server using 'localhost:10.0' as the value of the DISPLAY variable
  • 原文地址:https://www.cnblogs.com/kuailewangzi1212/p/343388.html
Copyright © 2011-2022 走看看