c# - 使用静态变量来存储全局的、不断变化的信息是一种好习惯吗?

标签 c# java oop static

使用静态变量来存储不同类所需的全局变化信息是否是一个好的 OOP 实践?

与传递参数以便被调用的类可以访问它相反。

最佳答案

这不是一般一个好主意,不...它绝对可以简化一些事情,但它使测试更难(例如,意味着你不能并行运行测试)。

某些方面(例如日志记录)通常是这样实现的,但我倾向于尽量不这样做。依赖注入(inject)让测试变得简单。 (当你需要将依赖项传递给类 Foo 只是为了将它传递给 Bar,然后将它传递给 Baz 等时,这会变得很痛苦。我认为我们在依赖注入(inject)方面仍然不完全“那里”。我认为一些关于作用域/生命周期的更高级的东西作为语言的一部分会很有用,但我们会看到......请注意,我看不到它发生在 C# 本身。)

关于c# - 使用静态变量来存储全局的、不断变化的信息是一种好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3666252/

相关文章:

c# - Windows Phone 应用程序上的矩形 UI?

java - 尝试进入 main 时内部类出现 NoClassDefFoundError

php - 像谷歌一样的分页背后的逻辑

java - 如何将 `Class<T>` 与子类一起使用,其中 T 是父类

c# - 从datagridview返回复选框值以在c#中形成

c# - 工厂方法构造函数的类型约束

c# - 使用 sqlite 的 Entity Framework Core 中的奇怪行为

java - NoClassDefFoundError : org. slf4j.LoggerFactory 是一个受限类

java - 将 json 响应转换为自定义类时出错

Javascript变量范围和继承