Каковы лучшие примеры шаблона разработки Singleton в API Java? Runtime
классифицировать одиночный элемент?
Только два приходят на ум примеры:
См. также :
Обновление : чтобы ответить на комментарий PeterMmm (в настоящее время удален?) (В котором спрашивалось, откуда я узнал, что это синглтон), проверьте javadoc и исходный код:
public class Runtime {
private static Runtime currentRuntime = new Runtime();
/**
* Returns the runtime object associated with the current Java application.
* Most of the methods of class <code>Runtime</code> are instance
* methods and must be invoked with respect to the current runtime object.
*
* @return the <code>Runtime</code> object associated with the current
* Java application.
*/
public static Runtime getRuntime() {
return currentRuntime;
}
/** Don't let anyone else instantiate this class */
private Runtime() {}
Он каждый раз возвращает один и тот же экземпляр и имеет частный
конструктор.
Обратите внимание, синглтоны следует использовать с осторожностью и размышлениями. Обдумайте аргументы против синглтонов и вашу ситуацию, прежде чем реализовывать один. Чрезмерное использование синглтонов - это анти-шаблон, аналогичный глобальным переменным.
Я использовал их в прошлом и вижу в них некоторую пользу. Я также был очень раздражен, когда пытался проводить с ними разработку через тестирование в той области, где они злы. Кроме того, наследование от них приводит к некоторому трудному для понимания поведению - по крайней мере, в Python - я точно не знаю в Java. Обычно из-за этого просто этого не делают. Поначалу это кажется отличной идеей, а потом вы сталкиваетесь с ловушками и хорошо понимаете, что, может быть, это все-таки не так хорошо.
Это для Swing : SingleFrameApplication. Посмотрите эту презентацию, в ней замечательно описано, как это работает.