核心提示:Delphi 7尚不支持静态域,是否就做不出单例呢?其实是没必要担心的,在刘艺所著的《Delphi模式编程》中,就给了多种实现单例的方法。我比较喜欢第一种,也就是利用{$J+}下常量可写的方法来保存单...
Delphi 7尚不支持静态域,是否就做不出单例呢?其实是没必要担心的,在刘艺所著的《Delphi模式编程》中,就给了多种实现单例的方法。我比较喜欢第一种,也就是利用{$J+}下常量可写的方法来保存单例。然而最近使用的时候,发现了一些问题:如果TFooA和TFooB直接继承了书中说的TSingleton,会发现TFooA和TFooB实际用的都是TSingleton里面的实例,这样在单例子类扩充单例父类的时候就会有些问题;虽然每个单例类都复制一份TSingleton的代码,然后在里面加自己的方法,可以解决问题,但是我们更希望直接从父类继承,尽量少重复实现相同的方法。因此我试图完善了那份代码,方便日后使用。在这里,每个单例子类都要覆盖AccessInstance这个方法,来保存自己的单例。AccessInstance的实现是完全一样的,且很简单,完全可以满足大家的CTRL+C欲望(笑)。最后加入了两个事件。
例程代码已经打包
迅雷专用高速下载