笔记:VCL的诞生和设计原理

 
回顧第一章: 回到從前(framework的產生背景)
 
第二章 VCL的诞生和设计原理
2.1誕生
chuck jazdzewski,anders heislberg
目標:
16/32混合
單繼承
PME模型
運行/設計期行為
面向對象
的組件模型
消息分派
 
采用類/繼承的方式。
演化:接口 ,COM,MIDAS
 
2.2設計
 
2.3vcl對象的孕育
2.3.1 對象模型
TObject = class
 constrctor Create;
 destructor Destroy; virtual;
end;
 
constrctor Create;=>
 
tobject.AllocateMemory;
TObject.InitializeSpectialFields;
setupExecFrame;
 
TMemoryManager = record;
 GetMem
 FreeMem
 ReallocMem
end;
 
2.3.2 從原始內存到對象成型
初始化
設定執行框架
 
2.4 對象服務
2.4.1 對象創建服務
newInstance
initInstance
框框范圍調整
 
2.4.2 對象識別服務
class function classname,classnameis,classparent,instancesize,inheritsfrom
 
2.4.3 對象信息服務
class function classinfo,methodaddress,methodname,fieldaddress,getinterface,getinterfaceentry,getinterfacetable,safecallexception
 
方法的種類:
virtual,overload的注意 :一旦使用了重載方法之后,編譯器便會以對象聲明的類型為綁定的依據。
動態方法與虛方法詳解,兩者的考 (類/繼承)
virtual:
 dynamic
2.5原始基本對象到提供服務的VCL對象
加上上層建筑
 
 
2.6VCL對象釋放服務
Destroy命名,為什么要定義成virtual,FreeandNil ,free
beforeDestruction:FreeInstance
FreeInstance: cleanupInstance;_FreeMem
cleanupInstance:根據vmt查找,清理已分配的內存(_FinalizeRecord=>_FinalizeArray)
_FinalizeArray:
case typeinfo.kind of
tkLstring:...
tkWString:...
tkVariant...
end
 
 
2.7VMT
 
結束語。
发布了38 篇原创文章 · 获赞 19 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/truexf/article/details/2125578
今日推荐