class Peoples {
late int id;
late String name;
static final Peoples _inst = Peoples._internal();
Peoples._internal();
factory Peoples() {
return _inst;
}
}
I have this singleton class. Which ensures that, only one instance of a class is ever created. So, even if someone tries to instantiate it, they will use the same instance. And i can create and set values, like:
Peoples ps1 = Peoples();
Peoples ps2 = Peoples();
ps1.id = 1;
ps1.name = "First";
ps2.id = 2;
ps2.name = "Second";
Is it possible to instantiate and set values like:
Peoples ps1 = Peoples(1, "First");
Peoples ps2 = Peoples(2, "Second");
So, now both "ps1" and "ps2" will have (2, "Second").
Sure! You need to pass the arguments to the factory method then you need to update the properties USING the referenced instance.
For example, you had
class Peoples {
late int id;
late String name;
static final Peoples _inst = Peoples._internal();
Peoples._internal();
factory Peoples() {
return _inst;
}
}
If you apply my solution then you have
class Peoples {
late int id;
late String name;
static final Peoples _inst = Peoples._internal();
Peoples._internal();
factory Peoples({int id, String name}) {
_inst.id = id
_inst.name = name
return _inst;
}
}
with this your question should be answered for more info about factory and params visit
https://dart.dev/guides/language/language-tour
Working Example
class Peoples {
late int id;
late String name;
static final Peoples _inst = Peoples._internal();
Peoples._internal();
factory Peoples(int id, String name) {
_inst.id = id;
_inst.name = name;
return _inst;
}
}
void main() {
print("Instance of = " + Peoples(0, "Dylan").name);
print("Instance of = " + Peoples(1, "Joe").name);
print("Instance of = " + Peoples(2, "Maria").name);
}