Если вы имеете отношение к индустрии программного обеспечения или занимаетесь программированием на Java, вы, должно быть, встречали термин «шаблоны проектирования», и вам должно быть интересно, что в них такого особенного? Почему все в мире программирования так ими очарованы! Итак, вы гуглите «шаблоны проектирования» на java и теряетесь в миллионах статей и видео на YouTube. Все понимаете, что это не ваша чашка чая и бросаете ее. Это моя попытка упростить шаблоны проектирования и уменьшить их популярность: p

Конечной целью при программировании на java или в целом является достижение - хорошей читабельности, слабой связи, возможности повторного использования, расширяемости… (Прочтите другие жаргоны мира Java). Так что же это за шаблоны проектирования? Что ж, если вы спросите меня, это всего лишь несколько причудливых названий передовых методов, которым следует следовать в Java в трех ситуациях / контексте с конечной целью достижения заявленных выше условий.

  1. Когда нам нужно создать экземпляр класса или создать объект класса. (Созидательный образец)
  2. Когда нам нужно упростить структуру и иметь дело с составом наших классов и объектов. (Структурный образец)
  3. Когда нам нужно реализовать взаимодействие между объектами - чтобы у нас была слабая связь и гибкость, чтобы легко расширяться. (Поведенческий образец)

Паттерны проектирования считаются решением общих проблем, с которыми мы сталкиваемся в повседневной жизни программирования. Как будто кто-то уже нашел решения проблем, с которыми вы столкнетесь, и определил их в шаблонах / паттернах, чтобы вы не тратили свое время на изобретение велосипеда. (Желаем, чтобы жизнь шла так же!)

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

Итак, представьте, что вы хотите создать классы для нескольких типов мобильных телефонов. Все типы мобильных телефонов нуждаются в некоторых общих функциях и основных свойствах, а также некоторых специальных функциях, уникальных для них. Итак, основной способ реализации этого - создание классов для каждого типа телефонов. Простой! Что ж, лучший способ - создать абстрактный класс верхнего уровня или интерфейс (MobilePhones) с общими функциями, а затем его подкласс в качестве различных типов мобильных телефонов, которые могут переопределять методы по умолчанию или могут иметь некоторые из собственных методов. Это то, что мы называем шаблоном шаблона.

Теперь давайте представим, что вы следовали этому шаблону, но теперь вы найдете некоторые мобильные телефоны с IOS, которые имеют некоторые функции, определенные в интерфейсе мобильных телефонов, но у них также есть дополнительные общие функции, которых нет в других уже определенных мобильных телефонах. Как же реализовать эту ситуацию, не нарушая существующую кодовую базу? Просто создайте другой абстрактный класс IOSMobilePhones, который реализует интерфейс MobilePhones и имеет некоторые методы, общие для всех мобильных телефонов IOS, определенных в нем. Позже отдельные мобильные устройства с ОС IOS могут расширить этот класс и при необходимости добавить свои специальные методы. Это то, что мы называем узором декоратора.

Рассмотрим другую ситуацию, когда мы хотим выполнить операцию записи в базе данных, поэтому в этом случае вы хотели бы избежать одновременной операции записи, чтобы избежать конфликтов. Итак, вы хотите, чтобы для этого класса был создан только один объект. Как вы это реализуете сейчас? Вы создаете статический экземпляр класса `` private static dB object = new dB (); '', а затем предоставляете для него статический метод, который возвращает этот экземпляр и, следовательно, действует как глобальная точка доступа к «Единственному объекту». Также сделайте конструктор класса закрытым, чтобы его нельзя было создать извне. Это то, что широко известно как шаблон синглтона.

Спасибо за чтение.