Um pouco sobre Factories
Factory é um Design Pattern categorizado no grupo Creational Patterns.
A motivação é centralizar/isolar as regras de construção do objeto, ou seja, para criar o objeto usa-se um especialista que não expõe a lógica necessária.
O objeto não pode ser criado de outra forma, pois isso quebraria a ideia do Pattern.
- Assim como outros Patterns não deve ser utilizado sem uma necessidade real, pois pode adicionar uma complexidade desnecessária.
Todo o código discutido por ser baixado para estudo no meu repositório: https://github.com/devrodolforichter/designpatterns
Existem vários tipos de Factory, cada um deles fornece solução para um determinado problema, vou falar sobre alguns que estudei.
Talvez você nem acabe usando o Factory completo, mas alguma parte do código pode ser interessante e lhe ajudar no futuro!
Factory Method
Abstract Factory
Abstract Factory com preocupação com OCP (Solid)
Generic Abstract Factory
Inner/Nested Factory
Asynchronous Factory
Factory with Tracking
Factory with Replacement Option