The factory pattern is most useful when an object type cannot and should not be used independently of some master managing class.
An analogy would be if you have a
Theater as the "Master class" (factory) and the objects that are created in the factory are
Tickets. So you have to ask the Master Theater class for a
new Ticket() whenever you want one. The Master class can now remember that it has sold you a Ticket and that there is one additional
Ticket in the system.
Tickets aren’t useful at all if the ticket issuer disappeared. Notice this is much better than having a system where
Tickets are created with no reference to a
Theater, but then are registered to a theater after creation. That would be like "counterfeit your ticket, then call us and tell us you have a ticket to our Theater".
And so the factory pattern makes perfect sense here.