(delphi11最新学习资料) Object Pascal 学习笔记---第12章第2节 ( RTL中的类构造函数 )

12.2.1 RTL中的类构造函数

​ 有一些RTL类已经利用了这一语言特性,比如Exception类定义了一个类构造函数(如下所示)和一个类析构函数:

delphiCopy code
class constructor Exception.Create;
begin
  InitExceptions;
end;

​ InitExceptions过程之前在System.SysUtils单元的初始化部分中调用。

​ 总的来说,我认为使用类构造函数和析构函数要比使用Unite的initialization和finalization更好。在大多数情况下,这只是一种语法糖,因此您可能不想回头更改现有代码。然而,如果面临初始化您永远不会使用的数据结构的风险(因为从不创建该类型的类),迁移到类构造函数将提供明显的优势。在一般库中,这很明显更经常发生,您不使用其中的所有功能,而不是在应用程序代码中。

注解 类构造函数的一种非常特定的用例是在泛型类的情况下。我将在专注于泛型的章节中涵盖这一点。

12.2.2 实现单例模式

​ 有些类只需创建一个实例。单例模式(另一种非常常见的设计模式)就是要求这样做,并建议为该实例设置一个全局访问点。

​ 单例模式有多种实现方式,一种经典的方式是将能够唯一访问实例的函数命名为 Instance。在许多情况下,这种实现方式也遵循懒惰初始化规则,因此程序启动时不会创建这个全局实例,只有第一次需要时才会创建。

​ 在下面的实现中,我不仅利用了类数据、类方法,还利用了类析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值