我有一种情况,我必须在类中上下传递2-3个独立的类的List<>。现在,我主要是使用参数来传递列表,这样3个类都可以获得列表。我是否应该使用静态列表而不是在所有类中传递列表来简化代码,如Class23.ListObjects.Add(),然后在操作完成后释放静态值,以便下一个操作从一个空列表开始。现在感觉参数变得很多,我对列表是否有正确的值感到困惑,忘记将列表传递给下一个类,等等。你觉得呢?
发布于 2012-06-07 10:08:11
我建议您创建一个新类来表示由各种类执行的组合操作(如果您愿意,可以将其称为“上下文”类)。执行操作所需的值可以作为实例变量保存在该上下文中,以及执行工作时使用的类的实例。
这样,您就避免了到处传递东西(随着代码的发展,这可能会变得有些丑陋),同时也避免了“全局”变量。数据恰好在它需要的作用域中,并且在整个操作完成时被处理。
发布于 2012-06-07 10:03:03
在编码实践中,拥有静态或全局变量是不好的,通过参数传递被认为是好的。
发布于 2012-06-07 10:08:20
如果使用静态参数,则在代码中的多个位置使用这些函数时,特别是在涉及线程的情况下,您将面临获取损坏数据的风险。
例如,假设A类需要使用作用于静态列表的函数。在这些函数完成之前,B类也会尝试使用它们,导致列表从两个调用中获取数据,因为在两种情况下都使用相同的静态列表。
https://stackoverflow.com/questions/10924708
复制相似问题