Factory, Abstract Factory, Factory Method

Take a creation process of something wherever you have it located just from all those places take it and put it into one single place where you can control how stuff gets created.

When should I implement a Factory?

When you ask yourself "Am I creating two things in two places identically?" and the answer is yes.