Шаблоны проектирования - это общие решения рутинных проблем при разработке программного обеспечения. Каждый шаблон действует как план, позволяющий настроить решение заданной проектной проблемы в любом коде во время разработки программных модулей. Я выстроил список для этой статьи, как показано ниже:
- Зачем нам нужны шаблоны проектирования?
- Что такое шаблоны дизайна?
- Структура шаблона дизайна
- Типы шаблонов проектирования
- Творческий шаблон дизайна
- Структурный шаблон проектирования
- Шаблон поведенческого дизайна
- Шаблон проектирования JEE
- Обзор шаблонов проектирования
Зачем нам нужны шаблоны дизайна?
Шаблон проектирования систематически называет, мотивирует и объясняет общий дизайн, который решает повторяющуюся проблему проектирования в объектно-ориентированных системах. Шаблоны проектирования необходимы для отражения некоторых из передовых практик. и принят в разработке программного обеспечения.
Что такое шаблоны дизайна?
Шаблон разработки программного обеспечения можно определить как шаблон программного обеспечения или описание решения проблемы, которая возникает в нескольких случаях при разработке программного приложения или платформы программного обеспечения.
Заслуга Design Patterns принадлежит банде четырех. Эрих Гамма, Ричард Хелм, Ральф Джонсон и Джон Влиссидес были авторами книги по шаблонам дизайна Java.
Структура шаблона дизайна
Структура любого шаблона дизайна считается в высшей степени организованной. Они часто документируются в форме шаблона, так что пользователи могут визуально идентифицировать проблему и мгновенно находить решение на основе взаимосвязи между классами и объектами. Шаблоны шаблонов, описанные первоначальными авторами шаблонов проектирования, выглядят следующим образом:
Типы шаблонов проектирования
Обычно шаблоны проектирования Java делятся на четыре категории, и каждая из них дополнительно классифицируется следующим образом:
- Шаблоны создания дизайна связаны с методом создания объектов.
- Шаблоны структурного проектирования связаны с составом классов и объектов, которые образуют более крупные структуры.
- Шаблоны дизайна поведения связаны с ответственностью и взаимодействием между объектами.
- Шаблоны проектирования JEE предназначены для предоставления решений для программных приложений и фреймворков на основе Java EE.
Шаблоны творческого дизайна
предпочтительнее в процессе инициации класса. Шаблоны творческого дизайна далее классифицируются следующим образом:
- Заводской узор
- Абстрактный узор фабрики
- Шаблон Singleton
- Образец прототипа
- Строитель шаблон.
- Шаблон пула объектов
Давайте обсудим некоторые важные шаблоны создания 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...
Структурные шаблоны проектирования
имеют дело с составом классов и объектов, которые образуют более крупные структуры. Они упрощают структуру, определяя связь между классами и объектами. Структурные шаблоны проектирования подразделяются на следующие категории:
- Узор фасада
- Образец моста
- Составной узор
- Шаблон декоратора
- Шаблон адаптера
- Выкройка наилегчайшего веса
- Шаблон прокси
- Шаблон фильтра
Давайте обсудим некоторые важные структурные шаблоны проектирования 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.
Шаблоны поведенческого дизайна
связаны с ответственностью и взаимодействием между объектами. Эти шаблоны проектирования позволяют убедиться, что объекты слабо связаны, но при этом могут легко взаимодействовать друг с другом. Паттерны поведенческого дизайна далее классифицируются следующим образом:
- Схема цепочки ответственности
- Шаблон стратегии
- Шаблон переводчика
- Шаблон итератора
- Шаблон посредника
- Образец сувенира
- Командный шаблон
- Государственный образец
- Шаблон наблюдателя
- Шаблон шаблона
- Шаблон посетителя
Давайте обсудим некоторые важные шаблоны поведенческого дизайна на практике.
Шаблон разработки стратегии: он определяет семейство функций и инкапсулирует каждую из них, делая их взаимозаменяемыми. Стратегия Шаблон также известен как Политика.
Преимущества:
- Он предназначен для замены подклассов.
Пример: мы собираемся рассмотреть простой пример калькулятора. Нам нужно выполнить пять различных операций. Мы инкапсулируем все эти пять операций в класс 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 подразделяются на следующие категории:
- Шаблон проектирования MVC
- Шаблон внедрения зависимостей
- Шаблон дизайна DAO
- Шаблон бизнес-делегата
- Шаблон перехватывающего фильтра
- Шаблон локатора услуг
- Перенести образец объекта
Давайте обсудим некоторые важные шаблоны проектирования 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 обеспечивают ясность системной архитектуры и дают возможность создать лучшую систему.