//简单工厂
//读卡器抽象类
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();