Одноэлементный класс Java
Класс Java Singleton
В этом руководстве мы научимся реализовывать шаблон проектирования Singleton в Java с помощью примеров.
В Java Singleton — это шаблон проектирования, который гарантирует, что класс может иметь только один объект.
Чтобы создать одноэлементный класс, класс должен реализовать следующие свойства:
- Создайте
private
конструктор класса, чтобы ограничить создание объектов вне класса. - Создайте
private
атрибут типа класса, относящийся к одному объекту. - Создайте
public static
метод, который позволяет нам создавать и получать доступ к созданному нами объекту. Внутри метода мы создадим условие, запрещающее нам создавать более одного объекта.
Пример:синтаксис одноэлементного класса Java
class SingletonExample {
// private field that refers to the object
private static SingletonExample singleObject;
private SingletonExample() {
// constructor of the SingletonExample class
}
public static SingletonExample getInstance() {
// write code that allows us to create only one object
// access the object as per our need
}
}
В приведенном выше примере
private static SingletonExample singleObject
- ссылка на объект класса.private SingletonExample()
- закрытый конструктор, ограничивающий создание объектов вне класса.public static SingletonExample getInstance()
- этот метод возвращает ссылку на единственный объект класса. Поскольку метод static , к нему можно получить доступ, используя имя класса.
Использование синглтона в Java
Синглтоны можно использовать при работе с базами данных. Их можно использовать для создания пула соединений для доступа к базе данных при повторном использовании одного и того же соединения для всех клиентов. Например,
class Database {
private static Database dbObject;
private Database() {
}
public static Database getInstance() {
// create object if it's not already created
if(dbObject == null) {
dbObject = new Database();
}
// returns the singleton object
return dbObject;
}
public void getConnection() {
System.out.println("You are now connected to the database.");
}
}
class Main {
public static void main(String[] args) {
Database db1;
// refers to the only object of Database
db1= Database.getInstance();
db1.getConnection();
}
}
Когда мы запустим программу, вывод будет таким:
You are now connected to the database.
В приведенном выше примере
- Мы создали одноэлементный класс Database. .
- Объект dbObject является полем типа класса. Это будет ссылаться на объект класса Database .
- Частный конструктор
Database()
предотвращает создание объектов вне класса. - Метод типа статического класса
getInstance()
возвращает экземпляр класса во внешний мир. - В Главной класс, у нас есть переменная типа класса db1 . Мы звоним
getInstance()
используя db1 чтобы получить единственный объект Базы данных . - Метод
getConnection()
доступ возможен только через объект База данных . - Начиная с базы данных может иметь только один объект, все клиенты могут получить доступ к базе данных через одно соединение.
Синглтон — это шаблон проектирования, а не функция, специфичная для Java. Шаблон проектирования похож на нашу библиотеку кода, которая включает в себя различные методы кодирования, которыми пользуются программисты по всему миру.
<час>Важно отметить, что существует всего несколько сценариев (например, ведение журнала), где синглтоны имеют смысл. Мы рекомендуем вам полностью избегать использования синглетонов, если вы не уверены, использовать их или нет. Узнайте больше:чем так плох Синглтон?
java