Design-patterns (creational, structural and behavioral) review in Java