本主题是对开始于“公有集合示例:稻草盖的房子”一节,并在“私有集合示例:树枝盖的房子”和“创建自己的集合类:砖块盖的房子”一节中继续作了讨论的代码示例的结果进行总结。在开始本主题之前,请先阅读一下那些主题。
创建 Employees 集合类,其结果是产生了一种非常清晰、模块化的编程风格。这个集合的所有代码都在集合类中(封装),从而减小了 SmallBusiness 类模块的大小。如果 Employee 对象的集合出现在对象分层结构的不止一处,那么重用集合类将不需要复制任何代码。
可以为自己的集合类实现附加的方法和属性。例如,可以实现 Copy 和 Move 方法,或者包含 SmallBusiness 对象引用的只读 Parent 属性。
也可以添加事件。例如,每当 Add 或者 Remove 方法更改集合中的项数时,可以产生一个 CountChanged 事件。
并不总是必须以可能的最强健的方式来实现集合。不过,面向对象编程的一个优点是代码重用;重用对象比起复制源代码来要容易的多,而且如果使用的是强健的、封装的代码,则会更安全些。
一位精明的人说过:“如果想书写真正强健的代码,一定要假设会发生真正糟糕的事情。”
如果使用的是 Visual Basic 的专业版或者企业版,可以将自己的工程转变成 ActiveX 部件,这样,同组的其他程序员就可以使用已经创建的对象了。
下面的清单总结了创建集合类所需要的步骤。
Public Function NewEnum() As IUnknown
Set NewEnum = mcol.[_NewEnum]
End Function
注意 上面的代码假设第二步中的私有变量被命名为 mcol
。
注意 在 Visual Basic 的专业版和企业版所包括的 Class Builder 实用工具,可用来创建集合类。就可以定制所得到的源代码。
详细信息 可以在《部件工具指南》中的“创建 ActiveX 部件”中读到更多关于软件部件的信息。