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

  • 相关阅读:
    用ASP.NET开发三层架构
    关于DataGrid模板列里的Checkbox全选个人总结
    javascript实现日期星期的显示
    在两个ASP.net页面之间传递值
    你有没有成为技术作家的潜力
    关于SharePoint 2007中的InfoPath Form Service的一点小问题
    关于MOSS SDK的Web Content Management
    [MOSS汇编SDK]Web Content Management:自定义页面的工具栏
    关于修改域用户密码的WebPart的问题的问题.
    [MOSS 译]如何:在WEB内容查询部件中使用自定义的字段
  • 原文地址:https://www.cnblogs.com/kuailewangzi1212/p/343388.html
Copyright © 2011-2022 走看看