Основной метод Java, хороший [закрытый] стиль кодирования

К сожалению, у Булмы нет встроенного класса для этого.

Вы можете легко создать класс для этого! Чтобы следовать булмским соглашениям, давайте назовем его is-clickable и определим его с помощью CSS:

.is-clickable {
  cursor: pointer;
}

Теперь просто включите класс в

-элемент.

Подробнее о cursor -rule можно прочитать в MDN .

36
задан Alex B 9 April 2009 в 01:02
поделиться

5 ответов

Я согласен с твоим другом. В AnImporter вы создаете потенциально многократно используемый сервис, который потенциально может использоваться в нескольких программах с несколькими основными. Таким образом, создание одного основного специального и встраивание его в AnImporter не имеет особого смысла.

35
ответ дан Clint Miller 27 November 2019 в 05:48
поделиться

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

Но я бы сказал, что удобочитаемость и тестируемость являются двумя вескими причинами выхода из основного метода (и его охватывающего класса) как можно скорее. Но эй .. это только я;)

14
ответ дан digiarnie 27 November 2019 в 05:48
поделиться

Я бы не загрязнил класс Runnable с основным методом. То же самое касается практически любого класса, который делает что-либо в вашем приложении. Как правило, у меня будет такой класс:

public class App {
  public static void main(String args[]) {
    Thread t = new Thread(new Blah());
    t.start();
      synchronized (t) {
        t.wait();
      }
  }
}

public class Blah implements Runnable {
  public void run() {
    // do normal stuff
  }
}

вместо:

public class Blah implements Runnable {
  public void run() {
    // do normal stuff
  }

  public static void main(String args[]) {
    Thread t = new Thread(new Blah());
    t.start();
    synchronized (t) {
      t.wait();
    }
  }
}

Он просто чувствует себя чище.

11
ответ дан gherson 27 November 2019 в 05:48
поделиться

The interface to main (a list of strings) is approximately useless, except for the OS shell.

Your main should have as little code as humanly possible in it.

Indeed, your public class ThisIsMyApp {...} should be nothing more than the OS interface to the real work, which is elsewhere.

2
ответ дан S.Lott 27 November 2019 в 05:48
поделиться

I always separate the main from the rest of the code, for several reasons:

1) A main is, in a way, a hack to let your program start from the command line. Any class that contains it should have a single responsibility: let the program start from the command line. By putting it with your primary runnable, you're polluting the runnable.

2) You could end up having multiple mains (e.g., with certain default parameters, with special modes, etc.)

3) You could end up running the program from a different environment (e.g., an Eclipse plugin or OGSI module, an applet, a web based tool, etc.). In those cases, you would want to restrict access to your main. Putting it with the functionality prevents that.

4) It is sometimes easier to leave your main in the default package to make run time execution faster (e.g., java myblabla par1 par2 par3), but you definitely don't want the rest of your code in the default package.

7
ответ дан Uri 27 November 2019 в 05:48
поделиться
Другие вопросы по тегам:

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