使用类厂方法来实例化对象

ZDNet软件频道 时间:2003-10-31 作者:zdnet china |  我要评论()
本文关键词:vbtips
在创建组件时,通常需要在创建时提供对象的初始化。例如,某个组件可能需要提供一个客户对象,而该对象需要预先载入客户数据。在VB.NET中,可以使用构造函数来完成这项工作。
本文译自Builder.com,未经许可请勿转载

在创建组件时,通常需要在创建时提供对象的初始化。例如,某个组件可能需要提供一个客户对象,而该对象需要预先载入客户数据。

在VB.NET中,可以使用构造函数来完成这项工作。但是,这在VB6种是不可行的。在VB6种,这个过程由一个类厂方法来完成,它使你可以控制对象的创建并对其进行初始化。

下面的例子示范了怎样使用类厂方法来创建对象。它也演示了怎样限制对组件的使用,使用户只能通过类厂方法来创建对象。

首先,创建一个ActiveX DLL项目。添加两个类:ClassFactoryCustomer选择ClassFactory并将实例化属性设置为6--GlobalMultiUse。这使组件的用户在不实例化该对象的情况下就可以访问它的方法。

接下来,选择Customer并将实例化属性设置为2--PublicNotCreatable。这使得组件用户可以访问该对象,但不能创建它。

然后,向Customer类加入以下代码:

Option Explicit
Dim strName As String

Friend Sub Initialize(ByVal Name As String)
    strName = Name
End Sub

Public Property Get Name() As String
    Name = strName
End Property

然后向ClassFactory类添加以下代码。这就是创建和初始化Customer对象的类厂方法:

Public Function CreateCustomer() As Customer
    Dim objCustomer As Customer
    
    Set objCustomer = New Customer
    Call objCustomer.Initialize("John Doe")
    Set CreateCustomer = objCustomer
    
    Set objCustomer = Nothing
End Function

要想使用该方法,创建一个新项目并设置对刚才ActiveX DLL项目的引用。向新项目中添加如下代码:

Dim objCustomer As Customer

Set objCustomer = CreateCustomer()
Debug.Print objCustomer.Name
Set objCustomer = Nothing

记住在VB6中使用类厂方法来控制对象的创建和初始化。



责任编辑:李宁

欢迎评论投稿

百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134