Java « Работа с каталогами и файлами на java, интерфейс.

Доброй ночи. У меня есть два небольших вопроса.

1. Разработка приложения с GUI начинается с разработки логики или интерфейса?
Я писал сначала интерфейсы обычно, но услышал что так не есть хорошо. Посоветуйте пожалуйста.

2. Есть программа на java для работы с файлами. Необходимо сделать так, чтобы при нажатии на кнопку "Обзор" открывалось меню, подобное тому, как в проводнике, но реализованное на java. Подскажите в какую сторону копать (классы, интерфейсы для работы).

1 ответов


1. Тебе правильно говорили о том, что начинать с разработки интерфейса не дальновидно. Так как интерфейс в программах как правило меняется и довольно часто (к примеру, если потребуется сделать web-интерфейс).
Сам я всегда вначале разрабатываю логику (модель данных), затем процедурами/функциями (обработкой данных) и лишь после этого реализую интерфейс (представление).
Советую почитать - http://www.java-course.ru/
2. Если речь идет именно про реализацию меню подобного проводнику с интеграцией в операционную систему, то java не лучший инструмент для этого.
Лучше воспользоваться чем-нибудь привязанным к платформе Windows.
Если всё же по какой-то причине хочется реализовать это, то смотреть в сторону JNI (Java Native Interface), который позволяет использовать низкоуровневые библиотеки.


1. Отталкиваться от интерфейса удается только в самых простых программульках. Когда приходится писать что то чуть сложнее лабораторных работ такой подход мгновенно обрастает костылями, и приходит понимание, что что-то не так. Самый очевидный совет: почитайте про такие паттерны как MVC и MVP.

PS: из личного опыта хотелось бы заранее обратить ваше внимание на следующий момент ( из вики ):

Начинающие программисты (особенно в веб-программировании) очень часто трактуют архитектурную модель MVC совершенно неправильно. Они рассматривают Модель (Model) исключительно как совокупность функций и/или методов для доступа к данным, а Контроллер (Controller) как элемент системы, содержащий бизнес-логику. В результате код Моделей по факту является средством получения данных из СУБД, а Контроллер представляет собой типичный модуль, наполненный бизнес-логикой или скрипт в терминологии веб-программирования.

PPS: Если Вы еще не знакомы с паттерном MVC, приведенный выше совет (из вики) наверняка покажется не понятным. Не переживайте, со временем вы до него сами дойдете =)