[Modify] Modify Abstract Factory Patter.