Синхронизация: вызов метода может быть синхронным или асинхронным.
Последовательность: некоторые соединители должны использоваться в определенной последовательности. Например, модуль A может вызывать метод модуля B и передавать ссылку обратного вызова во время вызова. Позже, некоторые события в модуле B могут инициировать обратный вызов для модуля A. Оба этих вызова метода представлены их абстракциями соединителя, а связанный с ними атрибут последовательности состоит из идентификатора последовательности и номера. В этом случае оба соединителя будут иметь одинаковый идентификатор последовательности, но разные порядковые номера, что указывает порядок вызова метода. Обратите внимание, что термины метод и вызов метода используются в очень общем смысле в этой главе. Как правило, классы и методы будут доступны только на этапе детального проектирования, который происходит после того, как был выбран проект архитектуры ПО.
Во время развертывания ПО элементы являются двоичными версиями модулей и файлов проекта. Несколько модулей исходного кода могут быть упакованы в один и тот же модуль развертывания, но соединители в структурах развертывания такие же, как и для структур исходного модуля. Давайте посмотрим на структуру ПО Java.
Классы являются основными строительными блоками ПО Java. Java-программа – это иерархическая коллекция из одного или нескольких классов. Большая программа состоит из тысяч классов. Файлы – это единицы компиляции в Java; то есть каждый файл может быть скомпилирован отдельно. Пакеты позволяют группировать тесно связанные классы и интерфейсы. Таким образом, они поддерживают иерархическую и статическую организацию большой Java-программы в качестве управляющих единиц «логическое пространство и пространство имен».
Объявления пакетов основаны на файлах, это означает, что все классы в одном и том же файле принадлежат одному и тому же пакету (пространству имен), если исходный файл содержит объявление пакета. Когда объявление пакета отсутствует в файле, все содержащиеся в нем классы принадлежат неназванному (анонимному) пакету. Когда используются пакеты, исходные файлы и файлы классов должны быть размещены в каталогах, структура которых соответствует структурам пакетов. Называть классы внутри пакета можно, указав полное имя следующим образом: package-name.class-name. Кроме того, мы можем импортировать пакет, одну из его субъединиц или все его классы.
Модули Java, объявленные внутри других модулей, таких как пакеты, классы или интерфейсы, дают древовидную иерархию. Напротив, импорт отдельно скомпилированных блоков определяет линейное частичное упорядочение, которое в сочетании с древовидной структурой подразделений определяет статическую структуру ПО.
Do'stlaringiz bilan baham: |