在同一单元的类方法中使用属性而不是字段是一种不好的做法?

Fab*_*ale 5 delphi

我已经为给定的类声明了私有字段和公共属性.

从其他单位我可以通过提供访问权限的公共财产访问该字段.

但是在声明此类的同一单元内,我可以选择直接通过属性访问该字段.

建议的最佳实践是什么:直接读/写字段或通过提供读写访问权限的属性?

NGL*_*GLN 6

大卫的品味相反,我总是使用私有/受保护字段,但仅在同一类(私有)或衍生(受保护)内.勉强,原因是我的可读性:

  • 到目前为止,FCount读作Count,
  • 使用私有字段表明我正在研究内部,
  • 在我使用该属性的零星情况下,很明显我需要触发它后面的setter或getter.

这里的关键点是一致的.选择一个,并坚持下去.没有对也没有错.

由杰瑞的评论更新:

关于保持一致性的观点是对每个人自身利益的一般建议.习惯使用一种默认语法,你的代码将在你的余生中清晰地表达(对我而言).

当然,当您选择使用私有字段时,会出现偶然情况,您必须使用该属性.但这反过来也适用:如果您选择使用该属性,那么您将不得不使用私有字段.我只是说当你坚持使用系统时,异常会更像是异常.


Dav*_*nan 5

嗯,这可能主要是因为个人品味.

我自己总是会选择这个属性,即使在声明属性的类的内部编码时也是如此.例如,在我看来,Count而不是FCount更好.

另一个观点是,如果你向公众公开了一个房产,并且它足以供公众消费,那么私人消费应该没问题.

另一种观点是,如果您选择尽可能使用最公开的界面,那么当您使用私有内容时会更加明显.因此,如果您发现需要编写FCount,因为没有Count,那么您会温柔地提醒您这是您正在使用的私人名称.

所以,正如我所说,没有明确的答案,只有我自己的个人意见和偏好.

  • 像"总是选择属性"这样的语句的唯一问题是当属性具有副作用(例如,执行计算或设置其他属性)时,您可能不希望在内部发生这种情况.:) (3认同)