This explains the basic of Abstract Factory Design pattern.