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

2024-04-23 06:08
文章标签 设计 笔记 原理 诞生 vcl

本文主要是介绍笔记: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
 
結束語。

这篇关于笔记:VCL的诞生和设计原理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/927973

相关文章

Spring @Scheduled注解及工作原理

《Spring@Scheduled注解及工作原理》Spring的@Scheduled注解用于标记定时任务,无需额外库,需配置@EnableScheduling,设置fixedRate、fixedDe... 目录1.@Scheduled注解定义2.配置 @Scheduled2.1 开启定时任务支持2.2 创建

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

MyBatis设计SQL返回布尔值(Boolean)的常见方法

《MyBatis设计SQL返回布尔值(Boolean)的常见方法》这篇文章主要为大家详细介绍了MyBatis设计SQL返回布尔值(Boolean)的几种常见方法,文中的示例代码讲解详细,感兴趣的小伙伴... 目录方案一:使用COUNT查询存在性(推荐)方案二:条件表达式直接返回布尔方案三:存在性检查(EXI

Mysql的主从同步/复制的原理分析

《Mysql的主从同步/复制的原理分析》:本文主要介绍Mysql的主从同步/复制的原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录为什么要主从同步?mysql主从同步架构有哪些?Mysql主从复制的原理/整体流程级联复制架构为什么好?Mysql主从复制注意

Nacos注册中心和配置中心的底层原理全面解读

《Nacos注册中心和配置中心的底层原理全面解读》:本文主要介绍Nacos注册中心和配置中心的底层原理的全面解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录临时实例和永久实例为什么 Nacos 要将服务实例分为临时实例和永久实例?1.x 版本和2.x版本的区别

apache的commons-pool2原理与使用实践记录

《apache的commons-pool2原理与使用实践记录》ApacheCommonsPool2是一个高效的对象池化框架,通过复用昂贵资源(如数据库连接、线程、网络连接)优化系统性能,这篇文章主... 目录一、核心原理与组件二、使用步骤详解(以数据库连接池为例)三、高级配置与优化四、典型应用场景五、注意事

电脑系统Hosts文件原理和应用分享

《电脑系统Hosts文件原理和应用分享》Hosts是一个没有扩展名的系统文件,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应... Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应

Dubbo之SPI机制的实现原理和优势分析

《Dubbo之SPI机制的实现原理和优势分析》:本文主要介绍Dubbo之SPI机制的实现原理和优势,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Dubbo中SPI机制的实现原理和优势JDK 中的 SPI 机制解析Dubbo 中的 SPI 机制解析总结Dubbo中

Android与iOS设备MAC地址生成原理及Java实现详解

《Android与iOS设备MAC地址生成原理及Java实现详解》在无线网络通信中,MAC(MediaAccessControl)地址是设备的唯一网络标识符,本文主要介绍了Android与iOS设备M... 目录引言1. MAC地址基础1.1 MAC地址的组成1.2 MAC地址的分类2. android与I