title: dart advantage of a factory constructor identifier
body: <p>I've been investigating JSON parsing for my Flutter app and have a question about factory constructors that I can't resolve. I'm trying to understand the advantage of using a factory constructor versus a plain constructor. For example, I see quite a few JSON parsing examples that create a model class with a JSON constructor like this:</p>
  <pre><code>class Student{
    String studentId;
    String studentName;
    int studentScores;
  
    Student({
      this.studentId,
      this.studentName,
      this.studentScores
    });
  
    factory Student.fromJson(Map&lt;String, dynamic&gt; parsedJson){
      return Student(
        studentId: parsedJson['id'],
        studentName : parsedJson['name'],
        studentScores : parsedJson ['score']
      );
    }
  }
  </code></pre>
  <p>I've also seen an equal number of examples that DON'T declare the constructor as a factory. Both types of classname.fromJSON constructors create an object from the JSON data so is there an advantage to declaring the constructor as a factory or is using a factory here superfluous?</p>