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(); /....
  • 相关阅读:
    《DSP using MATLAB》 示例 Example 9.12
    《DSP using MATLAB》示例 Example 9.11
    《DSP using MATLAB》示例 Example 9.10
    《DSP using MATLAB》示例Example 9.9
    《DSP using MATLAB》示例 Example 9.8
    《DSP using MATLAB》示例Example 9.7
    《DSP using MATLAB》示例 Example 9.6
    《DSP using MATLAB》示例Example 9.5
    《DSP using MATLAB》示例 Example 9.4
    (转载)【C++11新特性】 nullptr关键字
  • 原文地址:https://www.cnblogs.com/jasonduan/p/5287926.html
Copyright © 2011-2022 走看看