title: Why use an abstract factory
body: <p>Trying to figure out the difference between factory and abstract factory.</p>
  
  <p>From what I understand, I would use a factory when I want to create objects with same properties but different type (for example - I want to have 10 horses, with same weight, height and age, but they should differ in name).</p>
  
  <p>So I create an interface (or maybe abstract class?) that already takes care of the weight, height and age, and just feeds it with name when I want to create a new horse.</p>
  
  <p>Assume I want to add colour property to the horses. Would that be a good reason to use an abstract factory? I will  get 2 factories - one for black horses and one for brown horses. Does it make any sense?</p>