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 .
Read moreShould a factory method be static?
No, factory class by default shouldn’t be static . Actually, static classes are not welcomed in OOP world since they can also convey some state and therefore introduce global application state. If you need only one factory object to be present, you can control it’s creation through singleton pattern.
Read more