gpt4 book ai didi

c# - 实例变量与参数传递?有争论吗?

转载 作者:可可西里 更新时间:2023-11-01 07:45:32 24 4
gpt4 key购买 nike

所以,

我最近一直致力于重构一些遗留代码,并且发现自己质疑我所做的一些重构决策的有效性。一个这样的查询是关于使用实例变量在对象内的方法之间共享对象。

具体来说,在许多地方,构造函数和方法已被拆分,局部变量被提升为实例变量,从而允许从现在独立的方法进行访问。在我看来,这似乎是错误的。它破坏了封装,改变了范围并可能影响生命周期,但是,其中一些类与性能相关,因此我想知道重构这些方法以使用参数传递代替的含义是什么?

更重要的是,我想知道我的假设是否站得住脚?在私有(private)方法之间共享时,对象的参数传递是否优于实例变量?

最佳答案

我绝对认为您不应该仅仅采用局部变量并将它们设为实例变量只是为了避免传递它们。出于您已经列举的原因,这绝对不是一个好主意,包括它会使类本身膨胀。

该实例变量所表示的是否是该类本身的属性不是可以通用解决的问题。这将取决于类代表的实体。 但是,此设计与类本身的设计有关,并且可能需要重新审视其整体类设计

如果您提供了您所指的重构的示例,它可能有助于在该上下文中提供更好的答案

关于c# - 实例变量与参数传递?有争论吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4193052/

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