zoukankan      html  css  js  c++  java
  • 工厂模式

    //N年项目中用过的 

    //便民终端机器设备工厂模式范例 //读卡器 ( 广东 CRT310 ---深圳TTCE-M100) //金属加密键盘 ( 深圳柏德盛B6100A --深圳凯明金属加密键盘KMY3501B) //读卡器抽象类 public abstract class CardRader { //初始化 public abstract int init(); //读卡返回卡号 public abstract string ReadID(); //退卡 public abstract void ExitCard(); //....等等其他方法 } //键盘抽象类 public abstract class Keyboard { //初始化 public abstract int init(); //读取密码 public abstract string ReadPwd(); //....等等其他方法 } //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退出"); } //....等等其他方法 } //密码键盘 B6100A public class KeyboardB6100A : Keyboard { //初始化 public override int init() { //...调用厂家dll方法 return 1; } //读取密码 public abstract string ReadPwd() { //...调用厂家dll方法 //加密字符串--键盘的密码都是键盘自动加密的,需要以报文的形式发送银行验证 return "jjjjjjjklsjkdlfjskldfjls"; } //....等等其他方法 } //密码键盘 KMY3501B public class KeyboardKMY3501B : Keyboard { //初始化 public override int init() { //...调用厂家dll方法 return 1; } //读取密码 public abstract string ReadPwd() { //...调用厂家dll方法 return "adsadsasdasd"; //加密字符串 } //....等等其他方法 } //工厂--创建读卡器 public abstract class CardRaderAbstractFactory { public abstract CardRader CreateCardRader(); } public class CardRaderCRT310Factory : CardRaderAbstractFactory { public override CardRader CreateCardRader() { return new CardRaderCRT310(); } } public class CardRaderM100Factory : CardRaderAbstractFactory { public override CardRader CreateCardRader() { return new CardRaderM100(); } } //工厂--键盘 public abstract class KeyboardAbstractFactory { public abstract Keyboard CreateKeyboard(); } public class KeyboardB6100AFactory : KeyboardAbstractFactory { public override Keyboard CreateKeyboard() { return new KeyboardB6100A(); } } public class KeyboardKMY3501BFactory : KeyboardAbstractFactory { public override Keyboard CreateKeyboard() { return new KeyboardKMY3501B(); } } --------------------------------------------------------------------------- CardRaderAbstractFactory crFactory = new CardRaderCRT310Factory(); CardRader cardReder =crFactory.CreateCardRader(); cardReder.init(); cardReder.ReadID(); //。。。。 KeyboardAbstractFactory kbFactory = new KeyboardB6100AFactory(); Keyboard keyboard = kbFactory.CreateKeyboard(); keyboard.init(); /....
  • 相关阅读:
    【iCore3 双核心板_ uC/OS-III】例程三:任务的挂起与恢复
    病例讨论-----鼻窦炎一例(联想的风)
    桂枝二越婢一治疗鼻窦炎(联想的风)
    半夏厚朴汤治疗双肺支气管炎(联想的风)
    茯苓饮治疗呕吐(联想的风)
    半夏泻心汤治疗腹泻一例(联想的风)
    己椒苈黄汤治水肿案(联想的风)
    苓甘五味姜辛汤(联想的风病案)
    黃芩汤(联想的风病案)
    九味羌活汤的理解---王幸福
  • 原文地址:https://www.cnblogs.com/jasonduan/p/5287926.html
Copyright © 2011-2022 走看看