Implementing the Factory Pattern with the Help of Reflection

keywords: Reflection, metaprogramming, generic programming, design patterns, factory pattern
Reflection, reflection-based programming and metaprogramming are valuable tools for many programming tasks, like the implementation of persistence and serialization-like operations, object-relational mapping, remote method invocation, automatic generation of user-interfaces, etc., and also for the implementation of several design patterns. C++ as one of the most prevalent programming languages still lacks support for standardised, compiler-assisted reflection. In this paper we introduce in short the Mirror reflection library which is a part of an ongoing effort to add reflection to C++ and we will show how reflection can be used to greatly simplify the implementation of object factories -- classes constructing instances of other classes from various external data representations.
reference: Vol. 35, 2016, No. 3, pp. 653–686