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(); /....
  • 相关阅读:
    第二次结对作业
    软件工程第一次结对作业2
    软件工程第一次结对作业1<embed border="0" marginwidth="0" marginheight="0" width=330 height=86 src="/music.163.com/outchain/player?type=0&id=273848636&auto=1&height=66"></embed>
    第三次软件工程作业——两题
    第三次软件工程作业——最大连续子数组和(最大子段和)
    第三次软件工程作业——商场营销税额
    软件工程第二次作业
    软件工程第一次作业
    Markdown 使用说明(转CSDN)
    大坑!常被忽视又不得不注意的小细节——%I64,%lld与cout(转载)
  • 原文地址:https://www.cnblogs.com/jasonduan/p/5287926.html
Copyright © 2011-2022 走看看