Перейти к основному содержимому

· 5 мин. чтения

1. Введение

Начиная с Java 8, мы можем определять функции с одним и двумя параметрами в Java, что позволяет нам внедрять их поведение в другие функции, передавая их в качестве параметров. Но для функций с большим количеством параметров мы полагаемся на внешние библиотеки, такие как Vavr .

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

В этом уроке мы дадим определение каррингу и представим его использование .

2. Простой пример

· 3 мин. чтения

1. Обзор

Шаблон декоратора можно использовать для придания объекту дополнительных обязанностей статически или динамически. Декоратор предоставляет расширенный интерфейс для исходного объекта.

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

2. Пример шаблона декоратора

Предположим, у нас есть объект «Рождественская елка», и мы хотим его украсить. Украшение не меняет самого объекта; просто в дополнение к елке мы добавляем некоторые элементы декора, такие как гирлянда, мишура, верхушка для елки, пузырьковые огни и т. д .:

· 5 мин. чтения

1. Обзор

В этом уроке мы познакомимся с одним из поведенческих шаблонов проектирования GoF — интерпретатором.

Сначала мы дадим обзор его назначения и объясним проблему, которую он пытается решить.

Затем мы рассмотрим UML-диаграмму интерпретатора и реализацию практического примера.

2. Шаблон проектирования интерпретатора

· 3 мин. чтения

1. Обзор

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

2. Пример шаблона прокси

Рассмотрим тяжелый объект Java (например, соединение JDBC или SessionFactory ), который требует некоторой начальной настройки.

Мы хотим, чтобы такие объекты инициализировались только по запросу, и как только они будут инициализированы, мы хотели бы повторно использовать их для всех вызовов:

· 5 мин. чтения

1. Введение

В этой быстрой статье мы обсудим два самых популярных способа реализации синглтонов в простой Java.

2. Синглтон на основе классов

Самый популярный подход — реализовать Singleton, создав обычный класс и убедившись, что он имеет:

  • Частный конструктор
  • Статическое поле, содержащее его единственный экземпляр
  • Статический фабричный метод для получения экземпляра

· 3 мин. чтения

1. Введение

В этом уроке мы поговорим о шаблоне проектирования блокировки с двойной проверкой. Этот шаблон уменьшает количество захватов блокировки, просто предварительно проверяя условие блокировки. В результате этого обычно происходит повышение производительности.

Давайте более подробно рассмотрим, как это работает.

2. Реализация

Для начала рассмотрим простой синглтон с драконовской синхронизацией:

· 6 мин. чтения

1. Обзор

В этом уроке мы познакомимся с одним из поведенческих шаблонов проектирования GoF — шаблоном состояния.

Сначала мы дадим обзор его назначения и объясним проблему, которую он пытается решить. Затем мы рассмотрим UML-диаграмму State и реализацию практического примера.

2. Шаблон проектирования состояний

Основная идея паттерна State состоит в том, чтобы позволить объекту изменять свое поведение без изменения его класса. Кроме того, благодаря его реализации код должен оставаться чище без множества операторов if/else.

· 3 мин. чтения

1. Обзор

В этом руководстве мы узнаем о различиях между двумя основными элементами конфигурации XML Spring: <context:annotation-config> и <context:component-scan> .

2. Определения компонентов

Как мы все знаем, Spring предоставляет нам два способа определения наших bean -компонентов и зависимостей: конфигурация XML и аннотации Java. Мы также можем разделить аннотации Spring на две группы: аннотации внедрения зависимостей и аннотации bean -компонентов .

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

· 3 мин. чтения

1. Обзор

Эта статья посвящена утверждениям, связанным с AssertJ Guava, и является второй статьей из серии AssertJ. Если вы хотите получить некоторую общую информацию об AssertJ, взгляните на первую статью из серии Introduction to AssertJ .

2. Зависимости Maven

Чтобы использовать AssertJ с Guava, вам нужно добавить следующую зависимость в ваш pom.xml :

· 4 мин. чтения

1. Обзор

Эта статья посвящена возможностям AssertJ , связанным с Java8, и является третьей статьей из этой серии.

Если вам нужна общая информация о его основных функциях, посмотрите первую статью из серии Introduction to AssertJ, а затем AssertJ для Guava .

2. Зависимости Maven