При проектировании того или иного программного продукта разработчик сталкивается с большим количеством проблем. И многие из этих проблем бывают ТИПИЧНЫМИ при разработке.
Так вот, чтобы разработчик сам не сидел и не выдумывал как ему решить какую-то типичную при разработке многих программных продуктов проблему, существует уже готовое решение этой проблемы, которое этот разработчик может использовать.
То есть существует шаблон, следуя которому разработчик может решить типичную проблему.
Сами подумайте, знание существующего, проверенного временем шаблона для решения типичной при построении приложения проблемы может существенно упростить разработчику жизнь. Без знания шаблонов разработчик может намудрить что-то такое, что скажется и на продуктивности, и на читабельности кода, и на другом.
Шаблон Factory
Первый паттерн, который мы рассмотрим называется Factory
(фабрика).
Factory довольно простой паттерн.
Часто в приложении может понадобиться вспомогательный объект с помощью которого можно создавать другие объекты. То есть это объект, который является фабрикой других объектов.
Важное уточнение, что фабрика создает экземпляры ОДНОТИПНЫХ классов.
В примере ниже фабрика книг производит разные книги (экземпляры этих книг).
Скомпилируем java файл и запустим программу.

Как видим, read
у созданных объектов вывел на консоль разные строки. Значит BooksFactory
умеет создавать РАЗНЫЕ ОДНОТИПНЫЕ объекты.
Когда применяется Factory?
Данный шаблон применяется по двум основным причинам:
1. Все объекты книг создаются одним методом.
Представьте себе приложение, которое содержит ранее написанные нами классы книг и класс фабрики книг, и которое также имеет пользовательский интерфейс.
Пусть этот интерфейс содержит поле для ввода названия книги и представьте, что то, что введет пользователь в это поле будет передано аргументом в метод фабрики createBook
.
Метод фабрики createBook
создаст объект той книги, которую хочет пользователь по названию, которое он ввел.
Суть в том, что тому, кто пишет программу заранее не известно, что пользователь напишет в поле для ввода в пользовательском интерфейсе, объект какой именно книги пользователь захочет создать.
То есть благодаря тому, что все объекты книг создаются одним и тем же методом, в программе создается именно тот объект, который хочет пользователь, а не программист или кто либо еще.
2. Второй важный момент, это то, что программист может добавить дополнительный функционал в класс фабрики, который может быть применен к любому создающемуся фабрикой объекту.
Table of Contents
Шаблон Singleton: обеспечение единственного экземпляра
Singleton в Java: гарантия одного экземпляра класса. Пример. Сравнение с статическим классом и преимущества.
Шаблон DAO: работа с БД через объект
DAO паттерн в Java: изоляция доступа к данным. Узнайте, как отделить бизнес-логику от низкоуровневых операций с базой данных через Data Access Object.
Шаблон Front Controller: централизованная обработка запросов
Front Controller в Java: централизованная обработка запросов. Паттерн для маршрутизации HTTP-запросов через единую точку входа в веб-приложениях.