Define a FactoryManager responsible for mapping types to factories

The FactoryManager converts factory types from specifications to
fully qualified class names and creates instances of them.