Acerca da UML, de padrões de projeto e de arquitetura, julgu...
Uma maneira de parametrizar um sistema pelas classes de objetos que ele cria é utilizar o padrão factory method para criar subclasses da classe que cria objetos, contudo essa solução tem a desvantagem de requerer a criação de uma nova subclasse somente para mudar a classe do produto.