是否有任何Delphi的工具或加载项,我可以用来帮助不重定向的面向对象的代码?

前端之家收集整理的这篇文章主要介绍了是否有任何Delphi的工具或加载项,我可以用来帮助不重定向的面向对象的代码?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个很大的代码库,我正在使用这样的单位:
unit myformunit;

interface
type
  TMyForm = class(Form)
  end;

  procedure not_a_method1;

  procedure not_a_method2;

  var
     global1,global2,global3:Integer;
  ...

总之,代码的作者没有写方法,他们写了全局程序.有数以万计的.在这些过程中,它们引用了一个MyForm的实例:TMyForm.

我正在考虑编写一个解析器/重写器实用程序,将该代码变成“至少面向对象的面向代码”.该策略是将界面和实现部分全局变量作为开始.我意识到这是非常优雅的OOP.但这是全球化的一步.

如果我一次可以在一个单位做到这一点,我可以修复项目其余部分的破损,如果我一次只能在一个表单上.但是,我想减少重写单位所需的时间,而不是用手来做.一些表单有500个程序和500个接口和实现全局变量,其实际上是与单个实例的状态相同的单个实例.

基本上,如果没有这样的话,我会做的是写一个基于Castalia Delphi解析器的解析器.我希望也许ModelMakerCodeExplorer或者castalia或者其他类似的工具有一些东西,至少会做一些我需要的一部分,所以我不必自己构建这个实用程序.即使我自己也要自己建造,我估计可能会为我自动化一千到二千小时的工作.我可以至少运行它,然后看看多少休息,然后在我决定重构这个代码的努力水平之后恢复或提交.

完成相同目标的替代策略(从零封装和零OOP,到更多的封装以及稍微超过零的OOP,以递增的方式,在一个大的非结构化的delphi代码库中,只有当它不可避免时才使用对象,而从来没有有任何关于真实OOP的想法)受到欢迎.

解决方法

更改全局变量以形成字段似乎只是剪切并粘贴它们.您可以考虑在虚拟过程中移动它们,并使用MMX来首先对声明进行归一化.

然后使用ModelMaker代码浏览器将过程和函数移动到窗体中,该窗体只是剪切并粘贴在“成员视图”中.

不需要,但作为下一步,从方法体中删除对表单实例的引用.这可以通过查找和替换来实现.

还是我错过了什么?

猜你在找的Delphi相关文章