gpt4 book ai didi

c# - 具有完全不相关的静态方法的静态类有什么问题吗?

转载 作者:太空宇宙 更新时间:2023-11-03 19:28:44 25 4
gpt4 key购买 nike

我目前正在处理很多最初不是我编写的 C# 代码隐藏。它们被写成一大堆看起来很糟糕的代码,现在我的工作是整理它们。

无论如何,在许多不同的 aspx.cs 文件中有很多重复的代码。例如,大约有五个代码隐藏文件,它们具有完全相同的代码片段,这些代码重复了很多次以将一些文本输出到文件中。我可以有方法:

private void outputToFile(string text)

在文件背后的五个不同代码中重复。

但是,我想知道声明一个名为“MethodHub”的静态类是不好的做法还是错误的,它包含 outputToFile(string text) 以及十几个与每个方法无关的其他方法其他?

总体目标是从静态类访问这些方法,这样我就可以有效地删除其他类中的数百行代码。

有人能看出这有什么问题吗,或者我可能会遇到什么问题吗?

最佳答案

我建议通过引入接口(interface)来抽象这种实用行为

interface IOutputService
{
void Output(string data);
}

并使用你的实现工具类

class FileOutputService : IOutputService
{
// ...
}

代表这个接口(interface),主要是为了避免静态类因为

编辑:

  1. 通过单元测试覆盖使用静态类调用的逻辑会很困惑
  2. 使用静态类很容易切换逻辑/行为,你必须改变逻辑实现本身,例如,你必须从文件输出切换到数据库输出,这将很容易注入(inject)另一个实现公共(public)接口(interface)的服务,而不是玩潜在的重构

关于c# - 具有完全不相关的静态方法的静态类有什么问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6545833/

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