Как вы включаете Основная функция Java в вашем дизайне?

Вы можете просто пропустить эту первую часть, потому что она сбивает с толку, но я буду держать ее здесь, потому что я хочу знать, чувствует ли кто-то еще то же самое путь. Я - студент CS, который использует Java в течение 3 лет, и мне все еще трудно понять, как включить функцию Main в мой дизайн. Неправильно помещать его в класс самостоятельно, но также неправильно вводить его в другой файл класса. Я вижу последнее как таковое, потому что оно не вписывается в остальную часть класса, что делает его несвязным. Например, я не могу просто прикрепить основную функцию к моему объекту DocumentReader. Это не имеет ничего общего с объектом. С другой стороны, я не могу просто создать класс Main, в котором есть только основная функция, потому что в объектно-ориентированном программировании вы Вы должны думать с точки зрения объектов, эффективно создающих миниатюрный мир в вашей голове. То, что этот миниатюрный мир вращается вокруг единственного объекта, который ничего не делает, а существует, просто кажется странным. Он не выступает в роли рассказчика и персонажа в истории, потому что одновременно ничего не делает. Я предпочитаю стиль C, чтобы иметь функцию Main, которая отделена от всего. Это держит повествование истории отдельно от персонажей, которые взаимодействуют друг с другом.

Я хочу знать, как профессионалы смешивают основной метод с остальной частью своего кода. Как вы делаете это вписывается в остальную часть дизайна. Также, они обычно длинные или короткие?

9
задан Carl Manaster 20 August 2010 в 16:16
поделиться

7 ответов

Я сохраняю функцию main () в классе, названном моим проектом. При этом, когда вы запускаете приложение с помощью командной строки, вы набираете:

java com.domain.project.ApplicationName

Мне кажется логичным иметь простое имя Launcher, а не:

java com.domain.project.AClassWhichDoesntLookLikeAMainClass

или (слишком) классический

java com.domain.project.Launcher

Но не беспокойтесь слишком сильно для этого класса он, вероятно, никогда не будет выполняться таким конечным пользователем. Сценарий или другой исполняемый файл будет запускать его большую часть времени.

Другое дело, ваш метод main () может стать тяжелым, особенно если вы действительно используете основные аргументы для большего количества параметров интерфейса командной строки. Может быть, он заслуживает своего класса.

5
ответ дан 4 December 2019 в 10:30
поделиться

Ну, иногда мне нравится создавать класс * Application и помещать его туда. Для DocumentReader у меня было бы DocumentReaderApplication , куда я бы поместил основную функцию, а также мог бы обрабатывать любые параметры запуска / аргументы командной строки. Если это приложение с графическим интерфейсом, то класс * Application запустит главное окно. В конце концов, где-то должна быть точка входа в программу, верно?

4
ответ дан 4 December 2019 в 10:30
поделиться

Я занимаюсь веб-разработкой на Java уже много лет.

Я ни разу профессионально не набирал слова «public static void main».

Между задачами ant, запускающими модульные тесты и другие локальные задачи, а затем развертыванием архива WAR на сервере, основной метод не входит в область действия веб-работы.

2
ответ дан 4 December 2019 в 10:30
поделиться

Я оставляю его в классе Program , где он будет совсем один. Обычно он просто запускает мое главное окно, а затем закрывается при выходе из окна.

0
ответ дан 4 December 2019 в 10:30
поделиться

Хардкорным людям с ООП это может не понравиться, но у меня просто есть класс с именем Main в моем корневом пакете проекта, который содержит основной метод.

Я считаю, что ваша программа должна где-то начинаться, но помещение ее в другой класс просто сбивает с толку. Я рассматриваю Main () как частный случай, заслуживающий отдельного класса. Я не помещаю в этот класс ничего, кроме информации о настройке.Это дает понять, что это отправная точка (а иногда и конечная точка) всей моей программы.

3
ответ дан 4 December 2019 в 10:30
поделиться

Основной метод используется только тогда, когда вы сами запускаете автономное приложение. Мир отходит от этого в отношении больших приложений просто потому, что они становятся настолько большими, что вам необходимо модулировать их.

Общие подходы - это пакеты WAR / EAR для Java EE и OSGi.

2
ответ дан 4 December 2019 в 10:30
поделиться

Класс с основным методом действует как точка входа. Поэтому рекомендуется поместить все в этот класс, который относится к и этой точке входа . Остальное делегируйте.

4
ответ дан 4 December 2019 в 10:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: