singleton
This commit is contained in:
parent
9091f51cfa
commit
91e4cafaa9
|
@ -17,6 +17,7 @@
|
|||
|
||||
1. [Фабричный метод (Простая фабрика)](factorymethod/)
|
||||
2. [Абстрактная фабрика](abstractfactory/)
|
||||
3. [Одиночка](singleton/)
|
||||
|
||||
## Компиляция
|
||||
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
# Одиночка
|
||||
|
||||
Порождающий паттерн проектирования, который гарантирует, что у класса есть только один экземпляр, и предоставляет к нему глобальную точку доступа.
|
|
@ -0,0 +1,7 @@
|
|||
import singleton.singleton;
|
||||
import std.stdio : writeln;
|
||||
|
||||
void main()
|
||||
{
|
||||
writeln(Singleton.getInstance().getDescription());
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
module singleton.singleton;
|
||||
|
||||
class Singleton
|
||||
{
|
||||
private static Singleton singleton;
|
||||
|
||||
private this() {}
|
||||
|
||||
static Singleton getInstance()
|
||||
{
|
||||
if (singleton is null)
|
||||
singleton = new Singleton;
|
||||
|
||||
return singleton;
|
||||
}
|
||||
|
||||
string getDescription()
|
||||
{
|
||||
return "I'm a classic Singleton!";
|
||||
}
|
||||
}
|
Reference in New Issue