Каков жизненный цикл приложения Java SE .... или его нет? - PullRequest
2 голосов
/ 10 ноября 2011

Я начал с программирования на iPhone и обнаружил, что у iPhone есть четкое представление о том, что делать разработчикам, например, loadView, viewWillAppear и так далее.Теперь я хотел бы написать некоторую программу на Java SE, но это не так просто, как я думаю.Я обнаружил, что Java, кажется, не имеет этих вещей (или я не знаю деталей).И я обнаружил, что Java просто использует JFrame для создания GUI, например:

import javax.swing.*;

   class MyFrame extends JFrame {
      public MyFrame() {
        setTitle("My Empty Frame");
        setSize(300,200); // default size is 0,0
        setLocation(10,200); // default is 0,0 (top left corner)
      }

      public static void main(String[] args) {
        JFrame f = new MyFrame();
        f.show();
      }
    }

Является ли Java способом поместить все в метод main?Есть ли лучшая архитектура?

Ответы [ 4 ]

6 голосов
/ 10 ноября 2011

iPhone-приложения имеют жизненный цикл, потому что на самом деле они не являются «приложениями» в традиционном смысле этого слова.Они больше похожи на драйверы, плагины или другие элементы, которые должны быть встроены в более крупную среду.Вокруг них много лесов, которые заставляют их работать, и эти леса вовремя вызывают различные обработчики.Эти строительные леса не считаются частью приложения, но они являются неотъемлемой частью работающего кода.

Сама Java - это язык программирования, на котором вы, безусловно, можете писать такие же «плагины» - дляНапример, Java-апплеты, Java-сервлеты, Enterprise Java Beans и т. д. - но вы также можете написать фреймворк на Java!Существует множество таких фреймворков, и тогда написание приложения становится просто вопросом написания одного или нескольких «плагинов».Но если вы сядете и напишите метод main() и уйдете оттуда, то вы отказываетесь от любой среды и имеете полную свободу в том, как структурировать свой код.

1 голос
/ 10 ноября 2011

Ответ от Эрнеста Фридмана-Хилла прямо на месте.Если вы предпочитаете работать с платформой приложений, я могу порекомендовать Jide JDAF (я не связан с ними).Это коммерческая среда для написания приложений на Swing.В нем есть мастер, который поможет вам быстро начать работу, вы можете попробовать web start demo .

Это лишает вас свободы делать все самостоятельно, но дает вам четкие рекомендации по разработке вашего приложения.

0 голосов
/ 10 ноября 2011

Насколько я знаю, сама JavaSE не предоставляет модель жизненного цикла. Хотя Eclipse equinox основан на платформе OSGi, поэтому, если вы используете ее, у вас может быть модель жизненного цикла, или вы можете просто придерживаться простой OSGi.
В качестве альтернативы Sun также разработала некую прикладную среду, но я не знаю ее названия ...
(Кстати, если вы посмотрите глубже, в конце все контейнеры выполняются простым основным методом:)

0 голосов
/ 10 ноября 2011
import javax.swing.*;
import java.awt.Dimension;

class MyFrame extends JFrame {
  public MyFrame() {
    setTitle("My Empty Frame");
    setPreferredSize(new Dimension(300, 200)); // default size is 0,0
    setLocation(10, 200); // default is 0,0 (top left corner)
    pack();
    setVisible(true); 
  }

  public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable() {

        @Override
        public void run() {
            new MyFrame();
        }
    });
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...