我目前正在为我的新工作学习 vb.net,我对公共领域的感受很复杂。我看到许多关于它们损害封装的论点。在 python 中,通常的做法是保持简单,并在足够的情况下使用字段。如果我们想稍后添加逻辑,我们只需将它们重构为一个属性,而不会破坏客户端代码的任何内容。
在我正在使用的代码库中,我看到包含十几个属性的巨大类,例如:
Private __GetDescriptionMode As Boolean
<DefaultValue(False)> _
Public Property GetDescriptionMode() As Boolean
Get
GetDescriptionMode = __GetDescriptionMode
End Get
Set(ByVal Value As Boolean)
__GetDescriptionMode = Value
End Set
End Property
那是 10 行代码,里面没有什么价值。在我的视觉工作室窗口中,我几乎看不到其中的 3 个。所以我有两个问题:
- 是否有正当理由不简单地定义字段并在需要时将它们重构为属性?
- OOP 原则对牺牲如此多的可读性如此重要吗?(我可以看更少的东西,我必须解析属性以确保它们没有做任何特别的事情等)
编辑 澄清我的第一个问题:如果我将字段更改为微不足道的属性,我是否有机会破坏客户端代码?