我已经使用Delphi相当长的一段时间了,但是与其说是从CS背景中学习的,不如说是在工作中“摸索” - 大多数是从我的老板那里学到的,再加上从网络、用户指南、示例等方面收集的碎片知识。
现在我的老板是老派人士,他使用Pascal开始编程,并没有必要随时跟进 Delphi 的最新变化。
最近,我一直在想我们的核心技术是否“错误”。
我们的大多数应用程序都与MySQL交互。通常,我们会创建一个record
来存储从数据库读取的数据结构,并将这些记录存储在TList
中。通常,我们会有一个单元来定义应用程序中各种记录以及种子和读取记录的函数和过程。我们不使用记录过程,例如在这里概述的那样。
在查看一些示例后,我开始思考是否应该使用classes
而不是记录,但我很难找到强有力的指导。
我们处理的是用户信息: 姓名、出生日期、事件、事件类型等。或者是Timesheet信息: 工时、工作等。
records
和classes
的另一个区别在于内存管理。当您声明一个record
类型的变量时,编译器会使用堆栈(stack)分配其内存。当该变量超出作用域后,其内存会自动管理(释放)。而当您声明一个class
类型的变量时,您只获取了一个引用,并且您需要调用其构造函数来分配您将要操作的实例。当您完成使用对象后(暂时),您有责任通过直接或间接地调用其析构函数来销毁该实例。 - AlexSC