我目前正在处理很多C#代码隐藏,这些代码隐藏最初并非由我编写。它们被写成大块可怕的代码,现在我的工作就是整理它。
无论如何,在很多不同的aspx.cs文件中有很多重复的代码。例如,大约有五个代码隐藏文件,它们具有完全相同的代码片段,可以将一些文本输出到文件中。我可以有这个方法:
private void outputToFile(string text)
在文件后面的五个不同代码中重复。
但是,我想知道一个名为“MethodHub”的静态类是否是一个不好的做法或者说是错误的,它包含outputToFile(字符串文本)以及十几个与每个方法无关的其他方法。其他
总体目标是从静态类访问这些方法,这样我就可以在其他方法中有效地删除数百行代码。
有人可以看到这个有什么问题,或者我可能遇到的任何问题吗?
答案 0 :(得分:4)
我建议通过引入接口
来抽象这样的实用程序行为interface IOutputService
{
void Output(string data);
}
并使用您的实现类实现类
class FileOutputService : IOutputService
{
// ...
}
代表此界面,主要是避免静态类,因为
编辑:
答案 1 :(得分:2)
当然,一个静态类持有几个不相关的方法并不是特别优雅,但它比“大量重复的可怕代码重复到处”模式更好。
进行重构时,请始终按小步骤进行。删除重复后,将更容易进一步改进。
答案 2 :(得分:0)
当然,您可以使用静态类,但如果该方法使用任何共享字段,则应避免线程安全问题。