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