起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 636|回复: 0

已知一个ClassURL(TBizClassURL)和环境(Context),怎样得到该ClassURL的对象实例?

[复制链接]
发表于 2004-12-27 13:23:17 | 显示全部楼层 |阅读模式
根据需要不同有两种方式,这两种方式的关键区别是是否需要由池共享对象,多次使用。具体该使用哪种需要根据应用选择。

1、在环境共享对象池中取
   Context.GetBizObject(ClassURL)是在环境对象池取得共享对象,如果环境中已有该对象,直接返回,否则创建一个并加入池中。通过这种方式取得的对象生命周期由环境管理,不用主动Free。      

2、自己创建
   通过BizSys.BizServive.CreateObject(ClassURL, Context)可创建出该ClassURL的对象实例,该实例必须由自己管理生命周期,即必须主动Free。

下面是BizServive的相关接口:

  TBizService = class
    function CreateBizForm(const AClass: TBizClassURL; AContext: TBizContext): TBizForm;
    function CreateBizObject(const AClass: TBizClassURL; AContext: TBizContext): TBizModule;
    function CreateObject(const AClass: TBizClassURL; AContext: TBizContext): TComponent;
  end;


说明:
A、BizSys是Business.Model名空间下的单元类,该类里有BizService属性,可以用来根据TBizClassURL创建对象
   
B、TBizContext是类名,Context是TBizObject(TInfo、TFunc等)或 TBizForm下的属性,表明该对象的环境
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2024-11-1 10:37 , Processed in 0.041380 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表