This has to be my favorite pattern in the PHP / static language world.
Dylan Pierce

I think it’s really up to the client, wherever that client happens to be in the application. It could be any other object that needs to call it.

You could use a the Builder Pattern if you wanted to abstract away the creation of the object with the right strategy.