US Office

1176 Shadeville Rd, Crawfordville Florida 32327, USA

 +1 (850) 780-1313

India Office

Office No. 501, Shree Ugati Corporate Park, Gandhinagar - 382421, Gujarat, India

[email protected]

What is Factory Constructor Identifier In Flutter?

What is Factory Constructor Identifier In Flutter

What is Factory Constructor Identifier In Flutter?

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?

In this blog post, we’ll provide a comprehensive overview of the Factory Constructor Identifier in Flutter. If you’ve ever wondered about its purpose and functionality, this guide is here to demystify the Factory Constructor Identifier and help you understand its role in Flutter’s object creation process. We’ll explore the concept behind the Factory Constructor Identifier and discuss its significance in creating objects and managing class instances. You’ll learn how to use the Factory Constructor Identifier to control object creation, handle complex initialization logic, and implement design patterns like Singleton and Factory patterns.

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. is our portal Platform dedicated to Flutter Technology and Flutter Developers. The portal is full of cool resources from Flutter like Flutter Widget GuideFlutter ProjectsCode libs and etc. 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.

Post a Comment