简单工厂

//简单工厂

//读卡器抽象类
public abstract class CardRader
{
   //初始化
   public abstract int init();
   //读卡返回卡号
   public abstract string ReadID();
   //退卡
   public abstract void ExitCard();
   //....等等其他方法
}

//CRT310 读卡器 
public class CardRaderCRT310 : CardRader
{
   //初始化
   public override int init()
   {
      //...调用厂家方法
      
      // 初始化后设备返回代码
      return 1001;
   }
   //读卡返回卡号
   public override string ReadID()
   {
      //...调用厂家dll方法
      //返回读取的卡号
      return "62261111111111";
   }
   //退卡
   public override void ExitCard()
   {
      //...调用厂家dll方法
      Console.WriteLine("CRT310退出");
   }
   //....等等其他方法

}

//M100 读卡器 
public class CardRaderM100 : CardRader
{
   //初始化
   public override int init()
   {
      //...调用厂家dll方法
      
      // 初始化后设备返回代码
      return 1001;
   }
   //读卡返回卡号
   public override string ReadID()
   {
      //...调用厂家dll方法
      //返回读取的卡号
      return "62261111111111";
   }
   //退卡
   public override void ExitCard()
   {
      //...调用厂家dll方法
      Console.WriteLine("M100退出");
   }
   //....等等其他方法

}

//简单工厂
public class CardRaderFactory
    {
        public static CardRader CreateCardRader(string type)
        {
            CardRader cr = null;
            if (type.Equals("M100"))
            {
                cr= new CardRaderM100();
            }
            else if (type.Equals("CRT310"))
            {
                cr= new CardRaderCRT310();
            }
 
            return cr;
        }
    }
    
    
    --------调用-----
    CardRader cr = CardRaderFactory.CreateCardRader("M100");
     cr.init();

 

 
 
posted @ 2016-03-17 16:40  幽谷清水  阅读(151)  评论(0编辑  收藏  举报