简单工厂

//简单工厂

//读卡器抽象类
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();
 
 
原文地址:https://www.cnblogs.com/jasonduan/p/5287986.html