Обзор шаблонов проектирования в Java

Обзор шаблонов проектирования в Java

22 июня 2023 г.
Мы обсудим некоторые из наиболее распространенных шаблонов проектирования в Java и то, как они могут помочь вам решить распространенные проблемы кодирования. Узнать больше.

Шаблон проектирования — это хорошо зарекомендовавшее себя и задокументированное решение распространенной программной проблемы. Вы можете думать о них как о лучших практиках, используемых знающими и опытными разработчиками программного обеспечения. За четверть века, прошедшие с момента появления Java, разработчики программного обеспечения столкнулись с многочисленными общими проблемами при разработке программного обеспечения. Со временем наиболее выгодные решения были получены путем проб и ошибок, а также большого количества экспериментов с использованием множества идей и подходов. Эти решения теперь кодифицированы в набор признанных шаблонов проектирования. Ожидается, что профессиональные разработчики программного обеспечения знают по крайней мере некоторые популярные решения типичных проблем кодирования. Имея это в виду, в этой серии статей будут представлены некоторые из основных преимуществ использования шаблонов проектирования, перечислены различные типы шаблонов проектирования и, наконец, дано краткое описание шаблонов для каждой категории.

Перейти к:

    Преимущества шаблонов проектирования Типы шаблонов проектирования Креативные шаблоны проектирования

Преимущества шаблонов проектирования Java

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

    Шаблоны проектирования могут ускорить процесс разработки, предоставляя проверенные и проверенные парадигмы разработки. Они способствуют повторному использованию и могут быть реализованы в нескольких проектах. Они помогают определить архитектуру системы. Они помогают обеспечить прозрачность дизайна приложения. Использование шаблонов проектирования приводит к более надежному и удобному в сопровождении коду. Облегчает понимание и отладку кода.

ПОСМОТРЕТЬ: Лучшие курсы Java от TR Academy

Типы шаблонов проектирования

Официальный справочник по шаблонам проектирования — «Шаблоны проектирования — элементы многоразового объектно-ориентированного программного обеспечения». Он описывает 23 шаблона проектирования, которые разбиты на три категории: творческие, структурные и поведенческие шаблоны. В этой серии мы также обсудим некоторые различные шаблоны проектирования. Вот дополнительная информация по каждой категории:

    Шаблоны создания. Эти шаблоны проектирования позволяют создавать объекты, скрывая логику создания, а не создавать экземпляры объектов напрямую с помощью оператора new. Это дает программистам больше гибкости при принятии решения о том, какие объекты необходимо создать для данного варианта использования. Структурные шаблоны. Эти шаблоны проектирования касаются композиции классов и объектов. Концепция наследования используется для создания интерфейсов и определения способов компоновки объектов для получения новых функций. Поведенческие шаблоны: эти шаблоны проектирования касаются связи между объектами. Разные шаблоны. Эти шаблоны проектирования идентифицируются Sun Java Center и в основном связаны с уровнем представления.

В оставшейся части этого руководства по программированию будет представлен обзор шаблонов Creational; другие шаблоны будут добавлены сюда позднее.

Творческие шаблоны

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

    Заводской узор. Абстрактный заводской узор. Синглтоновый паттерн. Образец прототипа. Шаблон строителя.

Теперь давайте рассмотрим каждый из них более подробно.

Заводской узор

Шаблон Factory Design используется, когда у нас есть суперкласс с несколькими подклассами, и на основе входных данных нам нужно вернуть один из подклассов. Этот шаблон берет на себя ответственность за создание экземпляра класса из клиентской программы в класс фабрики. Разработчики могут применить шаблон Singleton к фабричному классу или сделать фабричный метод статическим.

Например, мы могли бы создать несколько конкретных классов, реализующих интерфейс Shape. Затем классы будут использовать класс ShapeFactory для получения объекта Shape, передавая информацию о типе объекта, который ему нужен (например, круг, прямоугольник, квадрат и т. д.). Фабричный класс использует оператор if-else или switch, чтобы решить, какой класс вернуть:

открытый класс ShapeFactory {

   // получаем объект типа shape
   // на основе перечисления ShapeType
   общественная форма getShape (ShapeType shapeType) {
      если (тип формы == ноль) {
         вернуть ноль;
      }
      если (тип формы == тип фигуры. КРУГ) {
         вернуть новый круг();
         
      } иначе если (тип формы == тип формы.ПРЯМОУГОЛЬНИК){
         вернуть новый прямоугольник();
         
      } иначе, если(ShapeType == ShapeType.SQUARE){
         вернуть новый квадрат();
      }
      
      вернуть ноль;
   }
}

Абстрактный заводской узор

Абстрактный фабричный шаблон поднимает фабричный шаблон на ступеньку выше, предоставляя фабрику фабрик. В шаблоне проектирования Factory у вас обычно будет один класс factory, который возвращает различные подклассы на основе предоставленных входных данных.

Однако в шаблоне абстрактной фабрики блок if-else в приведенном выше примере будет заменен несколькими классами фабрики (по одному для каждого подкласса). Затем абстрактный фабричный класс возвращает подкласс на основе входного фабричного класса.

Синглтон шаблон

Шаблон Singleton ограничивает создание экземпляра класса и гарантирует, что только один экземпляр класса существует в виртуальной машине Java (JVM). Реализация паттерна Singleton всегда была спорной темой среди разработчиков. Камнем преткновения является то, что синглтоны остаются в памяти на протяжении всего жизненного цикла приложения, что делает их потенциальной утечкой системных ресурсов. С другой стороны, иметь один объект в памяти предпочтительнее, чем множество экземпляров, существующих одновременно.

Образец прототипа

Шаблон прототипа используется, когда создание объекта является дорогостоящим и требует много времени и ресурсов, а у вас есть аналогичный объект, который уже создан. Используя шаблон прототипа, программисты копировали исходный объект в новый объект, а затем модифицировали его в соответствии со своими потребностями. Копирование свойств объекта достигается с помощью клонирования Java. Шаблон проектирования прототипа требует, чтобы объект, который вы копируете, предоставлял функцию копирования. Это не должно быть сделано никаким другим классом. Однако то, использовать ли поверхностную или глубокую копию свойств объекта, зависит от требований и является проектным решением.

Шаблон строителя

Шаблон Builder был введен для решения некоторых проблем с шаблонами проектирования Factory и Abstract Factory, когда объект содержит много атрибутов. Этот шаблон решает проблему, вводя большое количество необязательных параметров. Объект также может находиться в несогласованном состоянии и может строиться поэтапно. Наконец, класс построителя предоставляет метод, который фактически возвращает окончательный объект.

Идти вперед

В этой первой статье о шаблонах проектирования в Java были представлены некоторые из основных преимуществ использования шаблонов проектирования, перечислены различные типы шаблонов проектирования и, наконец, дано краткое описание шаблонов создания. Во второй части мы рассмотрим категорию «Структурные паттерны». Следите за обновлениями!

СМОТРЕТЬ: Карьерный пакет Java-программирования


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE