gpt4 book ai didi

oop - 类数据在内部传递好还是直接访问好?

转载 作者:行者123 更新时间:2023-12-01 11:08:42 25 4
gpt4 key购买 nike

例子:

// access fields directly
private void doThis()
{
return doSomeWork(this.data);
}

// receive data as an argument
private void doThis(data)
{
return doSomeWork(data);
}

第一个选项与 this.data 中的值耦合,而第二个选项避免这种耦合。我觉得第二种选择总是更好。它促进了类内的松散耦合。随意访问全局类数据似乎是个坏主意。显然,此类数据需要在某些时候直接访问。但是,如果访问,可以通过参数传递来消除对这个全局类数据的访问,这似乎总是可取的。

第二个示例的优点是可以处理任何正确类型的数据,而第一个示例只能处理类数据。即使您不需要额外的灵 active ,将其作为一个选项似乎也不错。

我只是没有看到像第一个示例那样直接从私有(private)方法访问成员数据有任何优势。这里的最佳做法是什么?我已经引用了完整的代码,但找不到关于这个特定问题的任何信息。

最佳答案

  • 如果数据是对象状态的一部分,私有(private)/ protected 就可以了。选项 1 - 好。

  • 我注意到一些开发人员喜欢创建私有(private)/ protected 变量,只是为了在类中的方法之间传递参数,这样他们就不必在方法调用中传递它们。它们并不是真正用于存储对象的模型/状态。 ...那么,选项 1 - 不好。

为什么选项 1 在这种情况下不好...

  • 只公开你需要的(变量作用域)。所以,传递数据。不要创建私有(private)/ protected var 只是为了在 2 种方法之间传递数据。
  • 在内部计算所有内容的私有(private)方法使其非常容易理解。保持这种方式,除非不可避免。
  • 私有(private)/ protected 变量使重构变得更加困难,因为您的方法不是“ self 包容”的,它依赖于可能在别处使用的外部变量。

我的 2 美分! :-)

关于oop - 类数据在内部传递好还是直接访问好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2656597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com