Abstract factory design pattern java. Factory Design Pattern