Design patterns are used to solve common design problems in software development and to reduce the complexities in our source code. Design patterns can be creational (related to object creation), ...
The controller handles incoming requests and puts any data the client needs into a component called a model. When the controller's work is done, the model is passed to a view component for rendering.