| Factory patterns | Abstract patterns |
| The objects are created through inheritance. | The objects are created through composition. |
| It is used in which the subclass is responsible for object instantiation. | It is used to delegate object instantiation by a class to some object. |
| This pattern creates products. | This pattern creates factory. |
| Each subclass knows what other classes to use or objects to create. | Swapping FactoryMethod classes with object composition. |