2

我有一种情况,我必须通过List<>2-3 个独立的班级上下班。现在我主要使用参数传递列表,因此所有 3 个类都获取列表。我应该使用静态列表而不是在所有类中传递列表来简化代码Class23.ListObjects.Add(),然后在操作完成后释放静态值,以便下一个操作从空列表开始。现在感觉参数越来越多,如果列表具有正确的值,我会感到困惑,忘记将列表传递给下一个类,等等。你怎么看?

4

3 回答 3

4

我建议您创建一个新类,该类代表各种类执行的组合操作(如果您愿意,可以使用“上下文”类)。执行操作所需的值可以作为实例变量保存在该上下文中,以及用于执行工作的类的实例。

这样,您可以避免传递东西(随着代码的发展,这可能会变得有些难看),同时避免使用“全局”变量。数据正好在它需要的范围内,并在整体操作完成时进行处置。

于 2012-06-07T02:08:10.863 回答
1

在编码实践中,拥有静态或全局变量是不好的,并且通过参数被认为是好的。

于 2012-06-07T02:03:02.870 回答
0

如果使用静态参数,如果在代码中的多个位置使用这些函数,尤其是在涉及线程的情况下,则存在获取损坏数据的风险。

例如,假设 A 类需要使用作用于静态列表的函数。在这些函数完成之前,B 类也尝试使用它们,导致列表从两个调用中获取数据,因为在两种情况下都使用相同的静态列表。

于 2012-06-07T02:08:19.600 回答