• С чего начать? (Java)

    @deleted-Ari100teLL

    Сейчас попробую сделать короткий список неплохой литературы (извините, если кого-то повторю ):
           1. Брюс Эккель - "Философия Java"
           2. Роберт Седжвик, Кевин Уэйн - Algorithms / Алгоритмы на Java
           3. К. Сьерра, Б. Бейтс - Изучаем Java (Мировой компьтерный бестселлер)(2012).
           4. Хорстманн К., Корнелл Г. - Java 2. Основы (Библиотека профессионала)(2 тома)
           5. Ноутон П., Шилдт Г. - Java. Наиболее полное руководство.

    Также неплохим приложением будут книги:
           1. Мартин Р. - Чистый код. Создание, анализ и рефакторинг.
           2. Гудлиф Питер - Ремесло программиста. Практика написания хорошего кода.
           3. Фримен Эр., Фримен Эл., Бейтс Б., Сьерра К. - Паттерны проектирования.

    Следует отметить что основным источником также является документация Oracle, которую можно найти на их официальном сайте (http://docs.oracle.com/javase/).
    Еще к неплохим веб-ресурсам, которые могут оказать огромную помощь при изучении java, можно добавить:
           http://stackoverflow.com/ - форум, где можно найти ответы на интересующие тебя вопросы из области программирования (в том числе и Java).
           http://kharkovitcourses.blogspot.com/p/java-core-course.html - вроде норм курсы (канал youtube - http://www.youtube.com/channel/UCuIctN7x71qam9K_ZxS1W2A )

    Также можно искать курсы по Java здесь:
           http://www.intuit.ru
           http://hexlet.org
    Желательно также вначале ознакомится с Java Code Conventions, которые можно найти на сайте Oracle.
    Cпасибо за внимание и успехов в изучении Java.

    Ответ написан
    Комментировать
  • Пример JAVA-приложения с использованием MVC?

    serso
    @serso
    Например:
    class MyView extends JFrame {
        ...
        JButton button = new JButton();
        button.addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent e) {
                Controller.getInstance().fireEvent(Events.OPEN_WINDOW);
            }
        });
        ...
    }
    


    В контроллере:
    void fireEvent(Event event) {
        for (Listener listener: listeners) {
            listener.onEvent(event);
        }
    }
    


    Сам контроллер может быть event слушателем:

    Controller implements Listener {
    ...
       void onEvent(Event event) {
            if ( event.equals(Events.OPEN_WINDOW) ) {
                // put here code for initializing and opening the window
                // NOTE: new window also can be listener of specific events
            }
        }
    ...
    }
    


    И работа с моделью:
     class MyView extends JFrame {
        ...
        JButton button = new JButton();
        button.addOnTextChangeListener(new TextChangeListener() {
            public void textChanged(TextChange e) {
                Controller.getInstance().fireEvent(new Event(Events.TEXT_CHANGE, e.getNewText()));
            }
        });
        ...
    }   
    
    Controller implements Listener {
    ...
       void onEvent(Event event) {
            if ( event.equals(Events.TEXT_CHANGE) ) {
                // find and update the module
                getTextContainer().setText(event.getData());
            }
        }
    ...
    }
    


    Естественно, TextChangeListener придуман для упрощения понимания, не знаю есть ли такой в Swing'e
    Ответ написан
    9 комментариев