Source: http://stg-tud.github.io/eise/WS14-EiSE-19-Factory_Method_and_Abstract_Factory_Design_Pattern.pdf