• 工厂模式


    //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(); /....
  • 相关阅读:
    Magento前台获取属性(自主获取)
    Magento PayPal提示订单地址无效解决方案
    Magento导入产品图片名称问题处理
    50个提升PHP性能的方法
    PHP开发者常犯的10个MySQL错误
    magento中给form添加输入验证
    PHP执行时间计算
    获得Magento全部Api方法
    Android 开发环境更新方法
    Android 网络通信开源框架 Volley JAR包的生成(一)
  • 原文地址:https://www.cnblogs.com/jasonduan/p/5287926.html
Copyright © 2020-2023  润新知