Реализация паттерна «Асинхронность» в простом коде Java

Реализация паттерна "Асинхронность" в простом коде JavaЯзык Jаvа с самого начала поддерживал потоки, которые вы легко можете исполь­зовать для выполнения асинхронного кода:

Для выполнения класса Runnable инициализируйте его в потоке и вызовите метод run, обратившись к методу start() только что созданного потока. Читать

Что такое асинхронное программирование Java

Что такое асинхронное программирование JavaПаттерн программирования «Асинхронность» — особый, хорошо интегрирован­ный случай множественных потоков. Вследствие самой сущности потоков много­ поточные модели нуждаются в системах уведомления и зависят от шаблонного кода для запуска потоков.

Асинхронные обращения используются даже в одногопоточных средах, таких как NodeJS. Почти все пользовательские интерфейсы поддерживают асинхронное выполнение для удержания UI в активном, реагирующем на действия пользовате­ля состоянии.

Тем не менее асинхронное программирование может быть полезным и в других местах, помимо пользовательских интерфейсов, обычно на серверной стороне. Hи J2SE, ни J2ЕЕ не предоставляли встроенной «легкой» реализации для асинхрон­ного программирования. Читать

Где и когда использовать паттерн «Декоратор» Java

Где и когда использовать паттерн "Декоратор" JavaПаттерн «Декоратор» Java динамически добавляет объекту поведение во время выпол­нения или тогда, когда невозможно или нецелесообразно создавать производные классы (возможно, потому, что при этом создаются множественные подклассы).

Пример с пиццерией показывает, как добавить поведение к объекту пиццы во вре­мя выполнения на основе сделанного посетителем выбора.

Функциональность интерфейса программирования приложений (API) может быть расширена и усовершенствована посредством оборачивания в декоратор. Подобным образом часто декорируются потоки данных. java.iо.BufferedInputStream — хороший пример декоратора, оборачивающего низкоуровневое API и добавля­ющего функциональность буферу потока ввода. Читать

Реализация паттерна «Декоратор» в простом коде Java

Реализация паттерна "Декоратор" в простом коде JavaЕсли классы находятся на стадии проектирования, будет несложно добавить деко­раторы. Однако если необходимо снабдить декоратором существующую систему, вам может понадобиться переделать некоторые классы. Например, целевой класс должен реализовывать тот же интерфейс, что реализует декоратор.

Эта статья демонстрирует применение паттерна «Декоратор» при разработке упрощенной РОS-системы для пиццерии. В данной статье сможете прочитать где использовать паттерн декоратор. Каждая пицца может быть украшена дополнительными начинками, такими как двойной сыр и бесплатный чили.

Во-первых, вам предстоит создать интерфейс Order, реализуемый с помощью класса Pizza и абстрактного класса декоратора Extra. Класс Extra расширяется классами добавочных начинок: DoubleExtra, NoCostExtra и RegularExtra. Читать

Что такое паттерн одиночка Java

Что такое паттерн одиночка JavaСогласно GoF, паттерн «Одиночка» гарантирует, что у класса есть только один экземпляр, и предоставляет к нему глобальную точку доступа. В книге «Паттерны проектирования» дается такое же объяснение. Одиночки часто используются в со­четании с фабриками. Читать

Что такое паттерн фасад Java

Что такое паттерн фасад JavaКнига GoF описывает этот паттерн как предоставляющий унифицированный интерфейс к множеству интерфейсов в некоторой подсистеме. Книга «Паттерны проектирования» дает это же толкование и обращает внимание, что, скрывая слож­ность подсистемы, паттерн «Фасад» в то же время предоставляет все возможности подсистемы через удобный для использования интерфейс.

Для простого практического примера того, как работает паттерн «Фасад», пред­ставьте стиральную машину со всего лишь двумя режимами стирки: для сильно загрязненного белья и для слабо загрязненного.

Для каждого режима стиральная машина должна выполнить предопределенный набор операций: установить темпе­ратуру воды, нагреть воду, установить длительность цикла стирки, добавить сти­ральный порошок, добавить отбеливающее средство, добавить смягчитель ткани и т.д. Каждый режим требует различного набора инструкций по стирке (разное количество стирального порошка, более высокая/низкая температура, более долгий/короткий цикл отжима и т.д.). Читать

Скелет JavaFX приложения

Скелет JavaFX приложенияВсе JаvаFХ-приложения создаются по одному и тому же образцу — типично­му скелету. Поэтому, прежде чем перейти к рассмотрению каких-нибудь других средств JavaFX, стоит продемонстрировать скелет JаvаFХ-приложения. Помимо общей формы такого приложения, скелет демонстрирует порядок его запуска и вызова методов его жизненного цикла.

Когда вызывается каждый метод жизнен­ного цикла, на консоль выводится извещающее об этом сообщение. Ниже приве­ден весь скелет JаvаFХ-приложения. Читать

Работа с цветом в Java

Работа с цветом в JavaВ Java поддерживаются цвета в переносимой, аппаратно-независимой форме. Цветовая система в библиотеке AWT позволяет сначала задать какой угодно цвет, а затем найти наилучшее соответствие этому цвету с учетом аппаратных ограни­чений, накладываемых на отображение в том устройстве, где выполняется аплет или прикладная программа.

Таким образом, прикладной код не должен зависеть от того, насколько отличается поддержка цвета в разных аппаратных устройствах. Цвет инкапсулируется в классе Color.

В классе Color определяется несколько констант (вроде Color.black) для описания наиболее употребительных используемых цветов. Читать

Обработка событий от мыши Java

Обработка событий от мыши JavaЧтобы обработать события от мыши, следует реализовать интерфейсы MouseListener и MouseMotionListener. Можно было бы также реализовать ин­терфейс MouseWheelListener, но мы не станем здесь этого делать.

Весь процесс обработки событий от мыши демонстрируется в приведенном ниже примере апле­та. В строке состояния окна этого аплета выводятся текущие координаты мыши.

Всякий раз, когда нажимается кнопка мыши, на месте курсора мыши появляется слово «Down»(Нажато). И всякий раз, когда кнопка мыши отпускается, слово «Up» (Отпущено) . А если производится щелчок кнопкой мыши, то в левом верх­нем углу области отображения аплета выводится сообщение «Mouseclicked» (Произведен щелчок кнопкой мыши ). Читать

Обзор класса MouseEvent Java — описание методов и примеры

Обзор класса MouseEvent Java - описание методов и примерыИмеется восемь типов событий от мыши. Для их обозначения в классе MouseEvent определяется ряд целочисленных констант, перечисленные ниже.

Класс MouseEvent является производным от класса InputEvent. Ниже приве­ден один из его конструкторов. Читать