这取决于您的要求有多强大。如果您只是对某些东西进行原型设计,那么将您的代码紧密绑定到您的表单就可以了。然而,如果你想构建一个更灵活、健壮和可扩展的应用程序,那么在类中建模你的数据结构,将你的功能封装在对象中是要走的路。
类使您能够对现实世界的事物进行建模,并且它们有助于在逻辑分离的分层架构中实现它们。在您的情况下,您的表单提供表示层,您的类提供应用程序层,您的 Excel 表提供数据层(通常是数据库) - 这是 3 层。
因此,在您的示例中,我将像您所做的那样在类中对您的数据进行建模,但是如果我需要需要所有 clsBaseball 对象的功能,我将为每个对象管理类。这些管理类包含您的 clsBaseball 对象的集合,并允许您实现需要对象集合的行为。例如,您将在 clsBaseball 中实现更新方法,但您将在 clsBaseballs 管理类中实现 CalculateStats,您还可以通过迭代(管理类)clsBaseballs 中的 clsBaseball 集合来调用所有 clsBaseball 对象的更新方法。
在回答您的问题时:
在上述过程中的任何时候都使用了 clsBaseball 吗?
1)他输入棒球卡数据:
您可能实例化了一个 clsBaseball 实例,但可能还没有
2)他点击更新:
你实例化一个新的 clsBaseball 实例(或使用现有的),传递用户输入的值并调用 clsBaseball 的更新方法。通过这种方式,您可以封装 clsBaseball 行为。
3)表单已验证:
这将在 clsBaseball 更新数据存储之前发生。因此,您可能会在 clsBaseball 中有一个在更新任何数据之前调用的验证方法。任何错误都可以传递回表示层(您的表单)。或者您可以只在表单中进行验证(尽管在表示层中有任何业务逻辑是不受欢迎的,因为您可能想将表示层切换为其他内容,请参阅MVC/MVP 模式)。
4)将数据保存到工作表中:
这是由 clsBaseball 通过更新方法完成的。
至于您喜欢的排序或统计例程,您可以从您的管理类中获取这些数据,因为它们包含您的对象集合,非常适合分析您的所有 clsBaseball 实例。所有这些功能都被很好地封装,没有重复(DRY),任何新接触代码的人都能够弄清楚发生了什么。
我刚才回答了一个关于如何在 MS Access 中构造数据的问题,答案包括类和管理类的示例:MS ACCESS 2003 触发器(查询事件)和 Excel 导入