Мой друг сказал мне, что лучшая практика - main
метод, содержащий классы, должен называться Main
и содержать только main
метод. Также main
метод должен только анализировать входные данные, создавать другие объекты и вызывать другие методы. Main
Класс и main
метод не должен делать ничего другого. По сути, он говорит, что класс, содержащий main
метод, должен выглядеть так:
public class Main
{
public static void main(String[] args)
{
//parse inputs
//create other objects
//call methods
}
}
Это лучшая практика?
object-oriented
programming-practices
пользователь
источник
источник
Ответы:
Смысл вашего друга в том, что приложение должно быть просто загружено основным методом, и ничего более. Имея метод main в своем собственном классе, вы просто усиливаете этот факт, сохраняя его независимым от любой логики приложения. Роль основного метода состоит в том, чтобы анализировать любые входные данные и инициализировать приложение с этими и, возможно, другими входными данными.
Идея в том, что вам не нужен метод main для инициализации
Foo
. Это позволяет вам легко инициализировать и запускатьFoo
в другом контексте, возможно, с другой семантикой.источник
Метод main () - это
простойвозврат к процедурному программированию, обеспечивающий точку входа в приложение. Предпринимаются попытки инкапсулировать его на разных языках программирования, но сама его природа делает это трудным (оно должно быть открытым и статичным, но его НИКОГДА не следует вызывать из чего-либо еще в программе, что весьма противоречиво). WPF преуспел (скрыв main () от вас глубоко в недрах проекта приложения WPF и предоставив настраиваемые «зацепки» для пользовательской обработки), как и Java (аналогичным образом для приложений Android), но WinForms и большинство других типов приложения по-прежнему заставляют вас иметь дело с main ().Итак, большинство экспертов говорят, что LOC функции main () должен быть как можно ниже. Есть один подход (который я считаю немного излишним), в котором функция main () имеет одну строку:
Это немного, но я согласен с основным принципом; Функция main () должна как можно меньше привести ваше объектно-ориентированное приложение, управляемое событиями, в состояние готовности.
источник
main
из других контекстов, например, рекурсии.В тех языках, которые поддерживают функции,
main
это просто обычная функция, и поэтому вы ничего не можете с ней сделать, кроме того, что вы сказали. Кроме того, существуютидиотскиеязыки, которые отбрасывают функции в пользу того, чтобы все было объектом, что означает, что каждый раз, когда вам нужна функция, вы должны обернуть ее ненужным классом .Ну, хватит болтать. Я пытаюсь подчеркнуть, что на
Main
самом деле это не класс, а функция, поэтому вам не нужно ничего делать, кроме как анализировать входные данные, создавать другие объекты и вызывать другие методы, потому что это все, что может сделать функция.источник