|
|
1
3
我发现这里最好的一般规则是:如果两次调用操作会导致多个资源调用或不同的行为-使用一个方法。 因此,在您的示例中,如果属性缓存以下内容,则可以使用它:
但是,该方法不需要-用户希望它是一个更密集的操作:
设计问题是您希望如何使用这个类? 将调用一个属性,就好像它是一个“廉价”操作:
方法提示开发人员,他们应该尽可能少地调用它:
就我个人而言,我更喜欢保持临时类的简单性,因此在绝大多数情况下,我将使用方法模型。 因为这是一个相当标准的约定,所以您应该避免不缓存的属性和这样做的方法。 |
|
|
2
6
就我个人而言,我将获取getResolvedText方法的主体,并在属性中使用它,因此:
这将把管理字符串的所有责任都放在一个地方。类本身可以访问
|
|
|
3
2
我将把它作为一个属性来保存,因为它表示一个不需要很多计算就可以检索的值。 |
|
|
4
0
对我来说,如果getter不能抛出异常或空/无效值,它应该是一个属性。这就是属性的作用。 但是,如果你做一些复杂的事情,如果必须是一个函数getter。显然,这里只有1个if,所以我将使用一个属性。 |
|
|
5
0
将您的示例和Steve的答案重新组合在一起,再加上一些缓存,很明显,资源值应该只读取一次,因为它永远不会更改,并且根据合同,我们必须尽快从属性返回值:
|