将System.out.println放入单独的方法是否合适?

Asc*_*ian 3 java

我正在使用一段代码,我发现有点奇怪.我正在处理的代码是导入实用程序的一部分,该实用程序接收CSV文件并将数据导入数据库.

在代码中,我看到:

ImportUtils.printf("Validation started");
Run Code Online (Sandbox Code Playgroud)

当我研究这个方法时,它只是调用System.out.println:

public static void printf(String s) {
    System.out.println(s);
}
Run Code Online (Sandbox Code Playgroud)

这有什么好处吗?这可能会成为一个问题吗?

Joh*_*her 15

考虑切换到完整的日志API,而不是创建一个简单的System.out.println包装器.有很多可用的(Commons Logging,Log4j,SLF4J等等).这些可以很容易地配置为控制台周围的简单包装器,可用于初始开发.在未来的道路上,这些可以修改为写入文件,发送电子邮件,写入数据库,......这些也提供了上下文信息(比如哪个类生成日志)非常有用,并且很难自己投入.


Mic*_*rdt 6

强迫解耦的典型例子.完全没有意义,因为如果你真的想让System.out写在其他地方,你可以自由地使用System.setOut().如果您需要更多的灵活性,那么日志框架的选择并不存在.


And*_*are 5

我认为这可能是一件好事 - 通过简单地改变ImportUtils.printf方法的实现,你可以自由地写入你想要的任何缓冲区.

有必要?我不知道,这可能是矫枉过正,但这种封装往往在需要时证明是一种福音.