Design Patterns
1. factory pattern
The factory pattern uses a common interface to separate logic from use.
It makes things, creates objects.
The added layers of abstraction allow us to modify our classes without having to edit out activity and vice versa.
2. abstract factory
An abstract factory is a factory that creates other factories.
One of the best things about patterns is that we can reuse structures.
The creational patterns such as the abstract factory allow us to make changes to our products without affecting client code or deployment.