Delphi 2010 中的扩展 RTTI 是否提供了列出定义的方法课堂和记录助手 http://docwiki.embarcadero.com/RADStudio/en/Class_and_Record_Helpers在运行时?
据我所知德尔福不显示提示或警告 http://wings-of-wind.com/2009/10/07/turbocharging-delphi-2010-adding-dynamic-functionality-to-3rd-party-frameworks-read-vcl/当为一个类定义多个类助手时,类助手检测可能是“质量保证”中的一个有用的例程。
附注当然,我知道我永远不应该使用没有源代码的第三方组件或库,这将使 grep 类助手变得容易。
由于类帮助程序仅根据范围内“最接近”的帮助程序应用于类,因此类根本无法知道帮助程序的存在。例如,您可以在您的单元中创建一个班级助手来“帮助”您没有来源的另一个单元中的班级。另一个单元的班级对任何助手一无所知。如果它确实有这些知识,那么就必须重新编译以考虑到这一点......这导致了下一个问题;
考虑这一点:您可以在一个公共单元中声明一个类,该类可以被整个应用程序中的许多其他单元使用。在每个单元中,您都可以使用不同的方法和“帮助器”函数为这个公共类声明一个新的帮助器。由于每个单元对也声明自己的助手的其他单元一无所知,因此根据设计,无法以某种方式合并所有助手。现在考虑一下这个公共单元现在跨预编译的包边界。
班里的帮手都是迷人的小异教徒。他们许诺名誉和财富,但往往在你屈服于他们的诡计很久之后,他们就会带来死亡和毁灭。
因此,将它们引入该语言解决了非常具体的问题,即“看似”将功能引入现有框架的能力。只要你遵守“一人帮手”的规则,并且不偏离这条道路,你may相对毫发无伤地出现。无论如何,您需要具备贝奥武夫、列奥尼达(斯巴达)和弗罗多·巴金斯的坚韧意志,才能在这片水域中航行。
鉴于此,在 RAD Studio 团队中,我们不愿意使用可以避免的类助手。当我们使用它们时,在我们开始之前就已经形成了适当的方阵......
这里有龙...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)