Шаблоны проектирования - это общие решения рутинных проблем при разработке программного обеспечения. Каждый шаблон действует как план, позволяющий настроить решение заданной проектной проблемы в любом коде во время разработки программных модулей. Я выстроил список для этой статьи, как показано ниже:

  • Зачем нам нужны шаблоны проектирования?
  • Что такое шаблоны дизайна?
  • Структура шаблона дизайна
  • Типы шаблонов проектирования
  • Творческий шаблон дизайна
  • Структурный шаблон проектирования
  • Шаблон поведенческого дизайна
  • Шаблон проектирования JEE
  • Обзор шаблонов проектирования

Зачем нам нужны шаблоны дизайна?

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

Что такое шаблоны дизайна?

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

Заслуга Design Patterns принадлежит банде четырех. Эрих Гамма, Ричард Хелм, Ральф Джонсон и Джон Влиссидес были авторами книги по шаблонам дизайна Java.

Структура шаблона дизайна

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

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

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

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

Шаблоны творческого дизайна

предпочтительнее в процессе инициации класса. Шаблоны творческого дизайна далее классифицируются следующим образом:

  1. Заводской узор
  2. Абстрактный узор фабрики
  3. Шаблон Singleton
  4. Образец прототипа
  5. Строитель шаблон.
  6. Шаблон пула объектов

Давайте обсудим некоторые важные шаблоны создания Java-дизайна на практике.

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

Преимущества:

  • Он разработан, чтобы позволить всем подклассам выбирать тип объектов для их создания.

Пример. У нас есть три плана сотовой сети, в которых указана стоимость звонков за минуту. Здесь у нас есть три разные сети, а именно: abcNetwork, pqrNetwork и xyzNetwork, а также их плата за минуту. Узнаем стоимость определенного количества минут в каждой сети.

Диаграмма UML:

// тарифный план сотовой связи

// abcNetwork

// pqrNetwork

// xyzNetwork

// SelectNetworkFactory

//Счет за телефон

Вывод:

Enter the name of network for which the bill will be generated: abcNetwork
Enter the number of minutes for bill will be calculated: 35
Bill amount for abcNetwork of 35 units is: 52.5

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

Преимущества:

  • Он предназначен для экономии памяти.
  • Объект не создается при каждом запросе, вместо этого повторно используется единственный экземпляр.

Пример. У нас есть база данных MySQL. Давайте вставим данные в базу данных, используя один единственный экземпляр объекта. Здесь у нас есть 4 различных операции, которые выполняются с базой данных, и все эти операции используют один единственный экземпляр объекта.

UML Диаграмма:

Вывод:

DATABASE OPERATIONS
---------------------
1. Insertion
2. View
3. Delete
4. Update
5. Exit

Please enter the choice what you want to perform in the database: 1
Enter the username you want to insert data into the database: Ravi
Enter the password you want to insert data into the database: 1234
Enter the ID you want to insert data into the database: 1011
1 Data has been inserted successfully
Press Enter key to continue...

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

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

  1. Узор фасада
  2. Образец моста
  3. Составной узор
  4. Шаблон декоратора
  5. Шаблон адаптера
  6. Выкройка наилегчайшего веса
  7. Шаблон прокси
  8. Шаблон фильтра

Давайте обсудим некоторые важные структурные шаблоны проектирования Java на практике.

Шаблон оформления фасада: описывает интерфейс верхнего уровня, упрощающий использование подсистемы. Каждая Абстрактная фабрика - это образец дизайна фасада.

Преимущества:

  • Он защищает конечных пользователей от сложных компонентов подсистемы.

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

Диаграмма UML:

Вывод:

Welcome to Franchise Service Registration...!
1. KFC
2. McDonalds
3. Dominos
4. EXIT
Please Enter your Franchise Option Number: 1
KFC
Rs 1,00,00,000

Шаблон проектирования адаптера: предоставляет интерфейс в соответствии с требованиями клиента при использовании служб класса с другим интерфейсом. Шаблон адаптера также известен как Wrapper.

Преимущества:

  • Он предназначен для того, чтобы два или более ранее несовместимых объекта могли взаимодействовать друг с другом.

Пример. Вот простой пример Библиотечной карточки, который предназначен для выдачи Библиотечной карточки новому пользователю библиотеки со всеми подробностями. например, идентификатор владельца книги, номер учетной записи r и многое другое. Давайте выполним это с помощью шаблона проектирования адаптера.

Диаграмма UML:

Вывод:

Enter the Library account holder name :Ravi

Enter the account number of the library:12012

Enter the Library name :MG Library
The Account number 12012 of Ravi in MG Library Library is valid and authenticated for issuing the Library card.

Шаблоны поведенческого дизайна

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

  1. Схема цепочки ответственности

  1. Шаблон стратегии
  2. Шаблон переводчика
  3. Шаблон итератора
  4. Шаблон посредника
  5. Образец сувенира
  6. Командный шаблон
  7. Государственный образец
  8. Шаблон наблюдателя
  9. Шаблон шаблона
  10. Шаблон посетителя

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

Шаблон разработки стратегии: он определяет семейство функций и инкапсулирует каждую из них, делая их взаимозаменяемыми. Стратегия Шаблон также известен как Политика.

Преимущества:

  • Он предназначен для замены подклассов.

Пример: мы собираемся рассмотреть простой пример калькулятора. Нам нужно выполнить пять различных операций. Мы инкапсулируем все эти пять операций в класс Calculator и выполним программу, используя шаблон разработки стратегии.

Диаграмма UML:

Вывод:

Enter the first value: 10
Enter the second value: 2
Addition = 12.0
Subtraction = 8.0
Multiplication = 20.0
Multiplication = 5.0
Multiplication = 0.0

Шаблон разработки команд: он инкапсулирует запрос под объектом как команду и передает его объекту-инициатору. Объект-вызывающий объект ищет соответствующий объект который может обрабатывать эту команду и передавать ее соответствующему объекту, и этот объект выполняет команду. Он также известен как Действие или Транзакция.

Преимущества:

  • Он отделяет объект, вызывающий операцию, от объекта, фактически выполняющего операцию.

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

Диаграмма UML:

Вывод:

Light is on
Stereo is on
Stereo is set for CD input
Stereo volume set to 11
Stereo is off

Шаблон разработки наблюдателя: он определяет зависимость один-к-одному, так что, когда один объект меняет состояние, все его зависимые объекты автоматически уведомляются и обновляются. Шаблон Memento также известен как Иждивенцы или Публикация-Подписка.

Преимущества:

  • Он иллюстрирует связь между объектами и наблюдателем.
  • Он обеспечивает поддержку связи широковещательного.

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

Диаграмма UML:

Вывод:

Current Score Display:
Current Runs: 90
Wickets Lost:2
Overs Played: 10.2

Average Score Display:
Average Run Rate: 8.823529
Predictable Score: 441

Шаблоны проектирования JEE

занимаются предоставлением решений для программных приложений и фреймворков на основе Java EE. Эти шаблоны широко используются в Spring. Шаблоны проектирования JEE подразделяются на следующие категории:

  1. Шаблон проектирования MVC
  2. Шаблон внедрения зависимостей
  3. Шаблон дизайна DAO
  4. Шаблон бизнес-делегата
  5. Шаблон перехватывающего фильтра
  6. Шаблон локатора услуг
  7. Перенести образец объекта

Давайте обсудим некоторые важные шаблоны проектирования JEE на практике.

Шаблон проектирования MVC. Шаблон проектирования MVC определяется следующим образом:

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

Преимущества:

  • Он поддерживает несколько представлений для модели.

Пример. Мы собираемся использовать шаблон Дизайн MVC для установки и печати данных школьников.

Диаграмма UML:

Вывод:

Student:
Name: Karan Kumar
Roll No: 21CSE987
Student:
Name: Sandeep Shukla
Roll No: 21CSE987

Шаблон дизайна DAO: DAO - это шаблон, в котором объекты предназначены для взаимодействия с уровнем данных. Эти объекты создают экземпляр «SessionFactories» и обрабатывают вся логика взаимодействия с базой данных.

Преимущества:

  • Он использует обычные вызовы для получения объектов.

Пример. Мы собираемся отображать сведения о разработчике определенной ИТ-компании с помощью шаблона дизайна DAO.

Диаграмма UML:

Вывод:

DeveloperId : 0, Name : Kushagra
DeveloperId : 1, Name : Vikram
DeveloperId 0, updated in the database
DeveloperId : 0, Name : Lokesh

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

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