-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSingleton.dart
More file actions
57 lines (45 loc) · 1.37 KB
/
Singleton.dart
File metadata and controls
57 lines (45 loc) · 1.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import 'Builder.dart'
show
CocktailBase,
CoctailTypeGlass,
CoctailTypeOfIce,
CoctailBasicIngredient,
CocktailGarnish;
class CocktailSingleton {
static CocktailSingleton? _instance;
String name = 'Coctail';
CocktailBase typeGlass = const CocktailBase(CoctailTypeGlass.hurricane, CoctailTypeOfIce.piece);
CoctailBasicIngredient basic = CoctailBasicIngredient.liker;
int makingTime = 5;
List<CocktailGarnish> garnish = <CocktailGarnish>[
CocktailGarnish.flower,
CocktailGarnish.lime,
];
CocktailSingleton._();
static CocktailSingleton getInstance() {
return _instance ??= CocktailSingleton._();
}
@override
String toString() {
var infoStr = 'Название коктейля : $name \n';
infoStr += typeGlass.toString();
infoStr += 'Basic ingredient ${basic.toString().split('.')[1]} \n';
infoStr += 'гарнир : (';
garnish.forEach((element) {
infoStr += element.toString().split('.')[1] + ',';
});
infoStr += ')\n';
infoStr += 'Время ожидания : $makingTime min';
return infoStr;
}
}
void main(){
var coctail = CocktailSingleton.getInstance();
print(coctail);
print ('---' * 20);
coctail.name = 'newCoctail';
var newCoctail = CocktailSingleton.getInstance();
print(identical(coctail, newCoctail));
print('---' * 20);
print(newCoctail);
}