delphi - 如何/如果仅使用表单和数据模块重构 Delphi 程序

标签 delphi unit-testing oop refactoring datamodel

经过多年将 Delphi 程序编码为表单和数据模块中不可测试的代码(包括全局变量),唯一的类是表单本身,包含表单 UI 本身所需的所有代码。

如何将代码转换为一组执行实际工作的类?我是否需要停止使用数据源/数据集并在类中执行所有操作?我需要 ORM 吗?

通常需要重用表单中的代码,因此将逻辑转换为类有意义吗?

最佳答案

如果我遇到一个有太多责任的表单(或其他类),我通常遵循以下模式:

  1. 为逻辑定义一个新类。
  2. 在表单中创建新类的成员变量。
  3. 在 onCreate 中创建类并在表单的 onDestroy 中释放它。
  4. 将单段逻辑(例如变量)移至新类。
  5. 将所有方法移动或创建到新类。
  6. 编译并测试。
  7. 继续,直到所有逻辑都放入新类中。
  8. 尝试将逻辑类与表单类解耦。 (如果您愿意,您甚至可以使用界面)。

有些情况下单个类是不够的,所以创建多个类也没有问题。这些类可以有其他类。

通过这些步骤,您可以解决大部分问题。

关于delphi - 如何/如果仅使用表单和数据模块重构 Delphi 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/549369/

相关文章:

c - 微 Controller C 代码的单元测试模式

javascript - NightwatchJS : how to loop on elements selected using document. 查询选择器全部?

php - 通过父类中的实例化类访问常量

delphi - FireUI 的 TStringGrid - 在绘制时设置值

delphi - 如何指定我的类是它创建的对象的所有者?

javascript - 函数内 Restangular 的 jasmine 测试用例

python - 使用映射器字典转换嵌套字典值

c++ - 将没有默认构造函数的类设为另一个类的私有(private)属性

delphi - 有没有办法让Delphi应用程序使用Hazelcast?

delphi - 为什么我的 TListBox 项目没有改变颜色?