程序里用到了singleton模式,所以我在initialization中Create了这个东东,开始没有问题,后来在一个模块中总是报错,调试了一下发现是因为单元的引用顺序不正确引起的。查了一下Delphi的帮助,简单的说:单元初始化的顺序就是单元被引用(uses)的顺序:首先从工程文件引用的单元开始,然后深度优先遍历。而finalization顺序刚好相反。
最终,为了避免再因为单元的引用顺序错误而造成这种问题,将单件对象的实例化放到一个静态的工厂方法中。
最终,为了避免再因为单元的引用顺序错误而造成这种问题,将单件对象的实例化放到一个静态的工厂方法中。