A normal constructor always returns a new instance of the current class except when the constructor throws an exception. So in this article, we will go through what is Factory Constructor Identifier in flutter ??
What is Factory Constructor Identifier In Flutter ??
A factory constructor is quite similar to a static method with the differences that it
- can only return an instance of the current class or one of its subclasses
- can be invoked with new but that is now less relevant since new became optional.
- has no initializer list (no : super())
So a factory constructor can be used
- to create instances of subclasses (for example depending on the passed parameter
- Now to return a cached instance instead of a new one
- So to prepare calculated values to forward them as parameters to a normal constructor so that final fields can be initialized with them.
- This is often used to work around limitations of what can be done in an initializer list of a normal constructor (like error handling).
In your example this code
studentId: parsedJson['id'], studentName : parsedJson['name'], studentScores : parsedJson ['score']
could be moved to the body of a normal constructor because no final fields need to be initialized.
A factory constructor vs. a normal constructor
- A factory constructor invokes another constructor.
- Since a factory constructor does not directly create a new instance, it cannot use a constructor initializer list.
- A normal constructor always returns a new instance of the class.
- A factory constructor is permitted to return an existing instance, an instance of a derived class, or null. (However, some people dislike returning null from a factory constructor.)
A factory constructor vs. a static method
- A factory constructor can be the unnamed, default constructor of a class.
- It can be used with new. (But using new is now discouraged.)
- Static methods can be used to create tear-offs (i.e., they can be used as callbacks) but constructors currently can’t.
- Static methods can be async. (A factory constructor must return a type of its class, so it cannot return a Future.)
- Factory constructors can be declared const
- In generated dartdoc documentation, a factory constructor obviously will be listed in the “Constructors” section (which is prominently at the top) whereas a static method will be in the “Static Methods” section (which currently is buried at the bottom).
Hope you learned from this article !!!
Keep Learning!!! Keep Fluttering!!!
So in this article, we have been through what is factory constructor identifier in flutter ??
Do not forget to drop your valuable suggestions/feedback. We would love to assist you.
FlutterAgency.com is our portal Platform dedicated to Flutter Technology and Flutter Developers. The portal is full of cool resources from Flutter like Flutter Widget Guide, Flutter Projects, Code libs and etc.
FlutterAgency.com is one of the most popular online portals dedicated to Flutter Technology and daily thousands of unique visitors come to this portal to enhance their knowledge of Flutter.