Что такое веб-сокеты Java

Что такое веб-сокеты JavaВеб-сокеты (WebSockets ), возможно, самое интересное нововведение в веб-техноло­гиях со времен появления «Aсинxpoннoгo JavaScript и XML»(AJAX). Они стали популярными с выходом HTML5 и поддерживаются множеством веб-фреймворков.

Однако потребовалось немало времени для создания стабильной и совместимой спе­цификации веб-сокетов.

Модель протокола передачи гипертекста (НТТР) была спроектирована задол­го до того, как стал популярен Интернет, она основывается на простых специфи­кации и дизайне. В традиционной модели НТТР клиент открывает соединение с сервером прикладной части, отправляет HTTP-запрос типа GET, POST, PUT или DELETE, а HTTP-сервер возвращает соответствующий ответ. Читать

Что такое паттерн проектирования MVC в Java?

Что такое паттерн проектирования MVC в Java?В паттерне «Модель — представление — контроллер» модель представляет данные приложения и связанную с ними бизнес-логику. Модель может быть представлена одним объектом или сложным графом связанных объектов. В приложении для плат­формы Java ЕЕ данные инкапсулируются в объектах предметной области, часто раз­вертываемых в EJB-модуле. Данные передаются в БД и из нее в объектах передачи данных (ОТО), и к ним обращаются с помощью объектов доступа к данным (ОАО).

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

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

Реализация паттерна "Наблюдатель" в простом коде JavaЯзык Jаvа обеспечивает готовую для использования реализацию паттерна «Наблю­датель». Разработчики легко могут реализовать этот паттерн с помощью интерфей­са Observer и расширения класса Observable.

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

Асинхронные сервлеты Java

Асинхронные сервлеты JavaДо сих пор вы видели, что можете преобразовать любой метод компонента в асин­хронный метод. Теперь вы увидите, как заставить асинхронно функционировать
сервлет. Без наличия асинхронной поддержки в сервлетах нелегко отвечать требо­ваниям асинхронности при веб-разработке.

Спецификация Servlet 3.0 (JSR 315) внесла серьезные усовершенствования в интерфейсы программирования веб-приложений (API) языка Jаvа. С появлени­ем JSR 315 спецификации сервлетов были обновлены (после длительного ожида­ния) для поддержки асинхронной модели выполнения, удобной конфигурации, подключаемости и других мелких улучшений.

Асинхронные сервлеты основываются на ключевом усовершенствовании в HyperText Traпsfer Protocol (НТТР) 1.1, сделавшем возможными постоянные со­единения. В НТТР 1.0 каждое соединение использовалось для отправки и получения только одной пары «запрос/ответ«; в то же время НТТР 1.1 позволяет веб-приложе­ниям поддерживать соединение в активном состоянии и посылать множественные запросы. Читать

Реализация паттерна «Асинхронность» в простом коде 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 описывает этот паттерн как предоставляющий унифицированный интерфейс к множеству интерфейсов в некоторой подсистеме. Книга «Паттерны проектирования» дает это же толкование и обращает внимание, что, скрывая слож­ность подсистемы, паттерн «Фасад» в то же время предоставляет все возможности подсистемы через удобный для использования интерфейс.

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

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