Delphi的类架构为什么这么设计?一个TObject完成了管理对象的功能,一个TComponent完成了基本的组件管理。
Borland摒弃了多重继承,采用单根继承,这样程序设计和阅读都清爽不少。
首先是TObject
TObject是Delphi的万类之王:1. 使用表格驱动的VMT轻松完成了类层面信息的管理 2 实现了申请内存和释放内存的功能,所有的方法都处于Published域,且很多的虚方法,提供子类来改写。类方法NewInstance直接显示了Delphi创建对象的实质,申请内存,并初始化,相应的有FreeInstance 3 支持接口 4 支持分发消息。
2 TPersistent 该类直接继承自TObject,完成了持久化的基本功能
3 TComponent继承自TPersistent,自然有了持久化的功能,TComponent的设计类似于一个虚拟或者逻辑组件,同时支持单组和Container,为了实现这个机制,在私有数据方面增加FComponents作为子组件列表,FOnwer作为其容器,同时,增加了一个状态属性,使用了Notify的设计模式。
4 精彩的TControl