为什么要使用类厂?

奔跑吧猴哥 2005-01-13 10:57:18
直接创建对象不也可以么?
使用类厂是不是多此一举?
...全文
217 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
同桌老王 2005-01-14
  • 打赏
  • 举报
回复
工厂,顾名思义,就是建造COM对象的工厂,批量化,简单来说,为了使用更加方便
xhncmec 2005-01-13
  • 打赏
  • 举报
回复
学习
快乐鹦鹉 2005-01-13
  • 打赏
  • 举报
回复
可扩展,易维护
老夏Max 2005-01-13
  • 打赏
  • 举报
回复
呵呵,类厂提供了很多功能,比如:
LockServer可以起到控制组件生命周期的左右,使用一次获得的类厂指针多次创建COM对象。
扩展的类厂接口提供了更多的功能,比如安全校验等等。
类厂的存在为进程外组件的使用提供和进程内组件一样的操作方法。列集和散集的工作、RPC通信都由类厂完成了!
宁静雪 2005-01-13
  • 打赏
  • 举报
回复
通用化.
hithyy 2005-01-13
  • 打赏
  • 举报
回复
我认为正正是工厂模式的一种实现。把创建的方法统一,并且隐藏了实现细节、可以添见更多的控制信息,恰恰是工厂模式的目的啊。

至于楼主所说的直接创建com对象实例,如果不在同一个进程的进程外组建,你如何在客户端创建这个实例呢?只有通过这个包装类暴露的接口来实现。
宁静雪 2005-01-13
  • 打赏
  • 举报
回复
那是设计模式中的工厂模式,但我认为com中的这个跟工厂模式还是有一定区别的.
XXandOO 2005-01-13
  • 打赏
  • 举报
回复
现在的面向对象理论认为,实体类型的实例化是所有实体类型的一种固有行为,而不是与实体类型本身相关的行为,因此应该与实体类型进行分离,类厂既是实现了这种所有实体类型共有的行为。
java中也有类似的概念哦。
宁静雪 2005-01-13
  • 打赏
  • 举报
回复
统一通用的方法
宁静雪 2005-01-13
  • 打赏
  • 举报
回复
回复人: aoosang(智慧的鱼) ( ) 信誉:97 2005-01-13 14:43:00 得分: 0


其实楼上的都没有说对,类厂到底是做什么用的??

类厂的作用其实就是进一步的将com实现类 封装起来,只让com的接口和类厂的接口暴露出来,com对象的实现类就可以完全的封装起来,如果允许你直接创建对象,你肯定要在客户端将com对象实现类的头文件包含进来的,否则你没法创建对象的.这样com的实现类就暴露给客户端了,就违背了com的本意了



======================
如果只是要实现与接口分离,
如果只是要com的实现类别暴需给客户端,
只要com服务器随便导出一个函数如myCreateInstance()并返回特定的接口就行了,为什么要使用iclassfactory??
使用iclassfactory的原因在于可以让客户端以统一通用的方面来创建任何com组件实例,而不是什么"com的实现类不用暴需给客户端"
aoosang 2005-01-13
  • 打赏
  • 举报
回复
列集和散集的工作、RPC通信都由类厂完成了!



////////////////////////
错误
aoosang 2005-01-13
  • 打赏
  • 举报
回复
其实楼上的都没有说对,类厂到底是做什么用的??

类厂的作用其实就是进一步的将com实现类 封装起来,只让com的接口和类厂的接口暴露出来,com对象的实现类就可以完全的封装起来,如果允许你直接创建对象,你肯定要在客户端将com对象实现类的头文件包含进来的,否则你没法创建对象的.这样com的实现类就暴露给客户端了,就违背了com的本意了
oyljerry 2005-01-13
  • 打赏
  • 举报
回复
提供了更多的功能

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧