首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从信用卡读卡器解耦信用卡等待窗口

从信用卡读卡器解耦信用卡等待窗口
EN

Stack Overflow用户
提问于 2011-07-07 18:15:46
回答 1查看 209关注 0票数 0

在我的程序中,我有一个窗口,用户可以在刷信用卡时看到这个窗口。该窗口将等待,直到刷卡或发生任何其他错误。目前,等待窗口正在内部创建读卡器类,并使用读卡器类的委托/回调方法来了解卡上的数据何时可用或发生任何其他错误。

因为有4-5种类型的阅读器可用,所以我正在为CardReader实现策略模式。

我还想将CardReader创建/实例化代码与窗口代码解耦。你能给我一些同样的建议吗?

在为CardReader设计策略模式类之前,我将阅读您的评论。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-07 20:44:15

使等待窗口构造函数需要引用读取器的类,为OnCardReadEvent注册等待窗口。当接收到事件时,调用读取器类中的函数来检查它,然后如果需要,继续显示等待窗口或关闭它。在窗口关闭时,从OnCardReadEvent注销

如果你没有OnCardReadEvent,那就做一个。

在reader类中,当读取完成时,执行类似以下内容的操作,以使多个窗口能够从单个读取器接收数据

代码语言:javascript
复制
DCardArrived _evnt = OnCardArrived; /*presumably declared event*/
         Delegate[] _iList;
         DCardArrived _Invoker;
         if (_evnt != null)
         {
             _iList = _evnt.GetInvocationList();
             for (int i = 0; i < _iList.Length; i++)
             {
                  //You could also use BeginInvoke
                 _Invoker = (DCardArrived)_iList[i];
                 _Invoker.Invoke(this/*Sender*/,CardData/*class that inherits EventArgs containing the data either informing just the window to close or not or with the data for further processing*/);
             }
         }

您没有提供给我们太多的工作:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6609009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档