Структура программы Теперь посмотрим на структуру программы (рис.4). Я изобразил её в виде диаграммы классов. Эта и следующая диаграмма составлены в соответствии с правилами UML (unified modeling language – унифицированный язык моделирования). Если вы не знакомы с UML, то не беспокойтесь, я постараюсь подробно все объяснить, да и сами диаграммы достаточно простые. Но, если вы планируете заниматься разработкой больших приложений, то все же советую почитать какую-нибудь книгу или статью о UML. Это значительно упростит и ускорит процесс разработки (проверено на собственном опыте). Рис.4. Диаграмма классов Давайте внимательно посмотрим на диаграмму. Все классы изображены в виде прямоугольников, в которых написаны их имена. Перед именем класса может идти имя объекта этого класса. Например, запись finder:FileFinder означает, что в программе есть объект с именем finder типа FileFinder. Работа программы начинается с вызова метода main(…) (класс Main). Тут выполняется создание главного фрейма программы, на котором размещается основная панель (объект класса MainPanel) со всеми элементами управления. Классы MainPanel и JPanel соединены сплошной линией с замкнутой стрелкой на конце. Это означает, что MainPanel является потомком JPanel. Таким образом, мы можем разместить MainPanel на фрейме и добавить на неё различные элементы управления (кнопки, надписи, текстовые поля и т. п.). Теперь взгляните на интерфейс SearchListener. Он изображён также как обычный класс, только над его именем указано ключевое слово (стереотип) interface. Пунктирная линия с замкнутой стрелкой на конце означает, что класс MainPanel реализует интерфейс SearchListener, т. е. содержит все методы, объявленные в интерфейсе. Теперь посмотрим на классы Thread, ResultsDialog и FileFinder. Все они соединены с классом MainPanel линиями, на одном конце которых находятся незамкнутые стрелки, а на другом – ромбики. Это обозначение можно расшифровать так: "MainPanel владеет объектами Thread, ResultsDialog и FileFinder". Рассмотрим подробнее назначение этих классов. FileFinder. С этим классом вы знакомы по предыдущим статьям. Он содержит методы, с помощью которых выполняется поиск файлов. Кроме того, этот класс "использует" интерфейс SearchListener, что отражено на диаграмме с помощью пунктирной линии с разомкнутой стрелкой. В нашем случае это означает, что объект типа FileFinder содержит указатели на объекты типа SearchListener, и может вызывать их методы. ResultsDialog. Этот класс является потомком JDialog, и представляет собой диалоговое окно с текстовым полем для отображения результатов поиска. Как видите, состав программы довольно простой. Теперь посмотрим, каким образом все это работает.
Понравилась статья? Получай обновления и будь всегда в курсе событий!