Get 方法的大小

2024-02-22

对于“Get”的代码行大小是否有任何指导原则或普遍共识?我在一个成员上有一个 Get 方法,这里很容易就增长到 30 行代码。我不确定在什么时候应该将其提取到方法中。但随后我只会将其称为 GetMyString 之类的名称,并将该值分配给另一个成员并在构造函数中调用它。

这样做值得吗?

这对SO来说太主观了吗?


dcastro 的答案很好,但可以使用一些扩展:

  • 回来的时间并不长

这不是量化的;让我们量化一下。属性所花费的时间不应超过获取字段所需时间的十倍。

  • 它不连接到外部资源(数据库、服务等)

这些速度很慢,因此通常属于第一条规则,但还有第二个方面:失败应该很少或不可能。属性 getter 不应抛出异常。

  • 它没有任何副作用

我想澄清一下可观察到的副作用。属性获取器通常会产生副作用,即它们计算属性一次并将其缓存以供以后使用,但这不是可观察到的副作用。

让一个属性产生可观察到的副作用不仅从哲学上来说是不好的,它还会扰乱你的调试体验。请记住,默认情况下,当您在调试器中查看对象时,调试器会自动调用其属性获取器并显示结果。如果这样做很慢,那么就会减慢调试速度。如果这样做可能会失败,那么您的调试体验就会充满失败消息。如果这样做有副作用,那么调试程序会改变程序的工作方式,这可能会导致很难找到错误。您当然可以关闭自动属性评估,但最好首先设计良好的属性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Get 方法的大小 的相关文章

随机推荐