那么,在即将推出的Delphi版本中提供一个功能如何呢?
也许它可以是一个编译器开关,将所有**private**s提升到**strict private**s。
..。或者,这可能是新的非遗留编译器字体端尼克霍奇斯谈论的一个特点。private =>总是表现得像strict private.
编辑:,我之所以想这样做,是因为我不想向修饰符中添加数千个strict。此外,在我熟悉的任何面向对象语言中,“严格私有”行为都是默认行为!
发布于 2009-04-17 16:19:08
当前的私有实现对于它声明的单元之外的所有内容都是私有的。因此,如果您不想添加严格的语句的理由是不想修改现有的单元,那么除了破坏在同一个单元中访问类的任何现有代码之外,没有什么可以获得的。只要您现有的单元不被修改,那么严格的和非严格的私有之间的区别是学术性的。
如果您对严格行为的推理是使用编译器来帮助您重构利用较少私有行为的代码,那么一次将严格添加到一个类是一种很好的增量方法,因此您可以更经常地进入可编译和可测试的状态。整个销售行为的改变都需要在你知道每一个违规行为是否有效之前就将其修复。
私有的行为类似于C++的好友--它允许某些类(或过程代码)访问私有成员。VCL和RTL大量使用这种行为,所以编译器开关或所有更改都会破坏所有这些代码。
Delphi的私有的实现对于所有实际目的来说都是足够私有的,因为通常您控制在其中声明类的单元。如果你只宣布每一个单位一个类,而不包括程序代码,那么这种区别仅仅是学术性的。
发布于 2009-04-17 15:06:30
我不太明白这个问题。但你为什么需要这个功能呢?如果这正是您所希望的,那么为什么不将代码中的特权替换为严格的特权呢?
https://stackoverflow.com/questions/759896
复制相似问题