我在 Delphi 中找到了关于新 RTTI 的一个很好的解释,但我不明白我所读到的所有内容中的一件重要的事情 - 我在哪里可以使用它?
它应该取代什么?
我在 Delphi 中找到了关于新 RTTI 的一个很好的解释,但我不明白我所读到的所有内容中的一件重要的事情 - 我在哪里可以使用它?
它应该取代什么?
扩展的 RTTI 像 .NET 中的反射一样工作。它使您可以访问内部应用程序结构信息。您可以在运行时访问类属性、方法等,在某种程度上是您以前无法做到的。
使用它的一些方法:
可能有很多情况下使用它会有所帮助。简而言之,它为您的应用程序添加了动态方面。你的产品能够在运行时做一些事情,而且比在设计时设计一切更有效。它不是灵丹妙药,很多人可能永远不会使用它。但是如果不使用新的 RTTI,一些设计模式或一些问题就无法解决(至少不是以有效的方式)
扩展 RTTI 可能有用的一个示例:
直到今天,必须发布表单属性,因为这种可见性对于序列化/反序列化 Delphi 表单文件 (dfm) 是必需的。
使用扩展的 RTTI,Delphi 可以使用不需要这种高可见性的新流层。当然这只是一个想法,但在实践中,表单上的所有组件都可以是私有的或受保护的。这将是更多的 OOP(封装),并消除了由外部可见的表单字段/属性列表中的数十个不相关条目引起的“噪音”。
例如Delphi Spring Framework Delphi 需要 Delphi 2010(或更高版本),因为它大量使用 RTTI,可用于构造函数注入。