Java主要方法,良好的编码风格 [已关闭]

2022-09-01 05:50:00

我和我的一个朋友就Java中main方法的正确和良好使用进行了长时间的讨论。基本上我们有一个这样的类:

public class AnImporter implements Runnable {
  // some methods, attributes, etc.
}

但是把主要方法放在哪里呢?我认为“将代码保留在它所属的地方”是一个很好的做法,从而将上面的代码变成

public class AnImporter implements Runnable {
  public static void main(String [] args){
    // Startup code for Importer App here
  }
  // some methods, attributes, etc.
}

虽然我的朋友认为“启动代码与应用程序本身无关”,因此它应该放在另一个类中,如下所示:

public class AnImporter implements Runnable {
  // some methods, attributes, etc.
}

public class AnApplication {
  // Nothing here
  public static void main(String [] args){
    AnImporter a = new AnImporter();
    // Startup code here
  }
  // Nothing here
}

尽管我们讨论了这个问题一段时间,但我们俩最终都没有得出关于Java中哪种方法更好的结论。你对这个话题有什么看法?在哪里,最重要的是,为什么,你把你的主要方法放在你放置它的地方?


答案 1

我同意你的朋友。您正在 AnImporter 中构建一个可能可重用的服务,该服务可能用于具有多个 main 的多个程序中。因此,使一个主要的特别并将其嵌入到AnImporter中没有多大意义。


答案 2

我可能会和你的朋友一起去,因为我宁愿尽快用主要方法离开课堂。当您想要以原子方式测试(只是可运行的类)或想要模拟事物时,它有助于促进测试。你越早摆脱主要方法,你就越有选择。如果你有一个类,里面有main方法和其他东西,它可能会很快变得混乱。(即使使用您描述的简单示例可能看起来不是这样)

但我想说的是,可读性和可测试性是尽快摆脱主要方法(及其包含类)的两个很好的理由。但是嘿..那只是我;)