• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 100分,求一解决方案,论题为如何泛化服务

100分,求一解决方案,论题为如何泛化服务

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了论题,论题和论点的区别,论题是什么,奇葩说论题,论题是回答 的问题等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 100分,求一解决方案,论题为如何泛化服务
描述:

问题描述:现有一接收数据包服务,定制了三个类 CAppMain、CIOCP、CDatabase,其中CIOCP和CDatabase聚合形成CAppMain,现在CAppMain有一个Init()方法,可以初始话CIOCP实例和CDatabase实例,CIOCP是完成端口的封装,包含的方法有RecvData(),CDatabase用于创建OLEDB对象,用于操作数据库,其中提供了一个方法CreateSQL()和WriteToDB(),现在的问题是,RecvData方法中包含验证数据包合法性的程序和解包的程序,而CreateSQL中含有创建存储过程的语句,WriteToDB中包含调用特定的存储过程的语句,现在要求,以COM方式对这个服务进行泛化,并且提供三个方法,要求,不管在什么方法下,只要传入三个函数指针,就可以进行特定的解包、创建存储过程、和写库,大家考虑考虑如何做?


解决方案1:

没明白你的意思,你自己不是已经说了如何做了吗?
使用三个COM组件,分别实现接口IAppMain、IIOCP、IDatabase(分别对应着CAppMain、CIOCP、CDatabase),要实现不同的数据协议和存储过程的联合,实现特定的支持IAppMain接口的COM组件即可。
不过我以为你的这个设计不好,应为IAppMain的功能只是生成另外两个COM组件的实例,所以IAppMain的Init应该改为HRESULT Init( [in] CLSIDREF clsidIOCP, [in] CLSIDREF clsidDatabase );在Init的实现中通过调用CreateInstance直接动态创建另外两个COM组件的实例,因此是包容,不是聚合,但是仍可以用聚合的外貌对人(即给人以是聚合的假象),不过有违COM的祖讯(对QueryInterface的调用失败一次,则永远失败)。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 100分,求一解决方案,论题为如何泛化服务

相关文章

  • 2017-06-05 COM控件的类对象//为什么要设计成->与符号分别调用某些函数????
  • 2017-06-04 求Com技術內幕這本書的隨書源碼
  • 2017-06-05 如何使ActiveX控件支持VC60中ATL所编写的COM组件?
  • 2017-06-05 环境变量的问题!等待高手指点!!
  • 2017-06-04 取页面元素的坐标问题
  • 2017-06-05 函数的重入问题
  • 2017-06-05 要命了,jmail邮件组件在Win7上用不了吗
  • 2017-06-05 directshow使用自己写的sourcefilter遇到奇怪的问题,项目急需,高手请进!
  • 2017-06-05 我即使是创建了多线程,但是界面还是不能动,这是因为什么呢?请看代码
  • 2017-06-04 请问一将ActiveX控件插入测试容器,就能显示出图形像OnDraw的椭圆,而不是运行容器之后才显示出来?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • IE切换时ACTIVEX不能快速释放
    • vc打开一个word文档
    • 在Excel的addin控件中,插入控件如何自动激活!!??
    • 高手指点,dll调用的问题
    • 用VC60如何生成DLL文件?
    • vb可以调用的dll如何让vc调用。
    • 急,有关ActiveX弹出对放框的问题
    • 谁可以写一个内存共享段代码写成DLL的例子,就是步骤。
    • ЖЖ很奇怪的问题,用_beginthreadex启动多个线程对硬盘所有盘符设置为监测模式,为何给线程函数传递结构参数的时候总是不能监测呢?ЖЖ
    • 关于vc在mapx中画点的问题

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有