patterns/singleton.dart

38 lines
990 B
Dart

//в однопоточном приложении будет единственный экземпляр некоторого класса,
//и предоставляющий глобальную точку доступа к этому экземпляру.
class Me {
static final Me _singleton = new Me._internal();
static final String _name = "Андрей";
factory Me() {
return _singleton;
}
static String get name => _name;
@override
String toString() => "Привет, меня зовут $name.";
Me._internal();
}
void main() {
var tyler = Me();
var anotherTyler = Me();
print(tyler);
print(anotherTyler);
var samenessCheck = identical(tyler, anotherTyler)
? "Мы один и тот же ${Me.name}."
: "Мы даже не похожи.";
print(samenessCheck);
/*
Привет, меня зовут Андрей.
Привет, меня зовут Андрей.
Мы один и тот же Андрей.
*/
}