Source: http://stg-tud.github.io/eise/WS15-SE-18-Factory_Method_and_Abstract_Factory_Design_Pattern.pdf