Когда мы должны использовать Класс Singleton в Java?

По моим соображениям, мы должны создать класс как синглтон, когда мы используем одно и то же состояние объекта во всем приложении. В этом случае мы хотим, чтобы пользователь ограничил создание нового экземпляра каждый раз, чтобы он не мог поддерживать несколько состояний. Согласовано. Но того же поведения можно добиться, объявив переменные экземпляра статическими. На мой взгляд, он также будет служить той же цели, будь то его класс cacheobjectcontainer , logger или Classloader .

Пожалуйста, помогите мне понять приведенную выше концепцию, где статический Переменная экземпляра не решает задачу, и класс необходимо объявить Singleton?

Отредактированная часть

Хорошо, позвольте мне внести еще немного ясности. Назначение одноэлементного класса - сохранить только один экземпляр одноэлементного класса в jvm. Согласовано. Но я пытаюсь придумать причины, по которым мы хотим сохранить только один экземпляр. Может быть две причины:

1) Создание объекта может быть дорогостоящим. Итак, мы просто хотим сохранить только один экземпляр. В этом сценарии объявление переменных экземпляра статическими не решает никаких задач.

2) Мы хотим использовать одно и то же состояние объекта во всем приложении. Я думал, что это основная цель объявления класса синглтоном. Но этого можно добиться, просто объявив переменные экземпляра статическими.

Но похоже, что 1 - это основная причина исключения любого класса как статического, а не причина 2, потому что этого можно добиться и с помощью статической переменной.

Это правильно ?

6
задан Tom Brito 29 August 2011 в 14:33
поделиться