当涉及到Java类中的顺序/序列方法时,您希望在哪里看到main()
方法?
- 在每个字段之前的顶部(强调用户其存在并强制使用它)
- 在底部(让用户先看到字段,然后发现主要内容)
- 在构造函数之后
或... .
请分享您的想法,这是一种风格/哲学上的问题。 请不要建议将main()
保留在单独的文件中。
当涉及到Java类中的顺序/序列方法时,您希望在哪里看到main()
方法?
请分享您的想法,这是一种风格/哲学上的问题。 请不要建议将main()
保留在单独的文件中。
这只是我的一些想法:
main()是一个与对象实例无关的静态方法。我们知道它作为入口点而存在,使得我们的程序/类可执行。
问题是,在Java中,除了原始类型(primitives)以外,一切都是对象,因此必须在某个类中声明main()。这样一个静态方法可能执行的代码更多地涉及设置程序以便执行,并委托给我们的业务逻辑(实际执行任务的对象)来运行应用程序。因此,它的关注点与我们类的其余部分不同(定义我们试图封装的一些数据和行为)。
main()并不真正属于我们日常类的数据和行为,因为我怀疑每个类都需要自己可执行。main()的关注点是运行我们的程序。因此,它应该远离我们的业务对象,在项目中关注应用程序启动/执行的模块中声明。所以,正如你可能猜到的那样,我正在提出你说过不要建议的建议 - 在尽可能的情况下将main与您的类和逻辑隔离,并仅在应用程序入口点的上下文中声明它。
至于文件内的位置,我认为它并不重要 - 只要显然该文件中的代码涉及设置和运行程序即可。
我一直把它放在最后,因为这是C语言的做法,“传统”之所以不一定是个好理由。 :-)
main
只是“另一个方法”,虽然是类方法而不是实例方法。虽然没有人强迫你遵循Sun的规范,但保持相对接近它可能会有一些优势,因为它有一定的熟悉度。大多数(如果不是全部)标准JDK库都会遵循它。这是采用方法最后的方法的一个好理由。关于main
在方法中的位置,将其放在第一或最后都可以。如果你觉得它在某种程度上很“特殊”,那么就将它放在文件的最后。我假设你并不会在你写的每个类中都系统地放置一个main()方法(在这种情况下,你需要考虑编写单元测试来代替)。
只要你的类包含一个main()方法,因此是应用程序的入口点,这个类就不应该有任何行为,除了应用程序初始化。这个好习惯被称为“关注点分离”:一个类=一个职责。
如果是这种情况,你的类中不应该有太多的方法。我个人总是按重要性对方法进行排序:最重要/有用/核心的方法位于所有其他方法之上,这些方法并没有添加任何真正的工作(对我来说,设置器和获取器属于这种类型)。
这样,读者首先可以访问最重要的信息。
当然,使用我推荐的Java约定进行编码意味着你首先声明类字段,然后再声明方法。