【发布时间】:2018-04-13 08:05:21
【问题描述】:
在阅读了 Yegor 关于不使用 getter 和 setter 的 this 文章后,我觉得这很有意义。
请注意,这个问题不是关于这样做是否更好/最差,只有在我正确实施的情况下
我想知道在 VBA 中的以下两个示例中,我是否正确理解了这个概念,以及我是否正确应用它。
标准方法是:
Private userName As String
Public Property Get Name() As String
Name = userName
End Property
Public Property Let Name(rData As String)
userName = rData
End Property
在我看来他的方式是这样的:
Private userName As String
Public Function returnName() As String
returnName = userName
End Function
Public Function giveNewName(newName As String) As String
userName = newName
End Function
从上面两个例子中我了解到,如果我想更改 userName 的格式(假设以全大写形式返回),那么我可以使用第二种方法来做到这一点,而无需更改方法的名称通过它给出名称 - 我可以让 returnName 指向 userNameCaps 属性。我程序中的其余代码仍然可以保持不变并指向方法 userName。
但是如果我想在第一个示例中执行此操作,我可以创建一个新属性,但随后必须在程序中的任何地方更改我的代码以指向新属性...对吗?
换句话说,在第一个示例中,API 从属性中获取信息,在第二个示例中,API 从方法中获取信息。
【问题讨论】: