Рисунок 13
Диаграмма классов для реализации шаблона «Одиночка»
Исходный код:
public class Singleton
{
private static Singleton _instance = null;
private String name = "Noname";
private Singleton()
{
}
public static Singleton GetInstance()
{
if (_instance == null)
_instance = new Singleton();
return _instance;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
}
public class Main
{
public static void main(String[] args) {
var s1 = Singleton.GetInstance();
var s2 = Singleton.GetInstance();
System.out.println(s1.getName());
System.out.println(s2.getName());
s1.setName("Serik");
s2.setName("Diana");
System.out.println(s1.getName());
System.out.println(s2.getName());
}
}
В данном примере реализован закрытый конструктор, который не даст
создавать экземпляр
класса извне.
Создание единственного экземпляра контролируется закрытым статическим полем _instance,
которое инициализируется при первом обращении к получению экземпляра класса через метод
GetInstance(), который предоставляет клиентам единственный экземпляр класса.
Достарыңызбен бөлісу: