Model View Controller (MVC) is a micro-architectural pattern initially introduced for the implementation of user interfaces. As AngularJS developers, we use different variations of this pattern on a daily basis, most often Model View ViewModel (MVVM). In MVC, we have the model, which encapsulates the business logic of our application, and the view, which is responsible for rendering the user interface, accepting user input, as well as delegating the user interaction logic to the controller. The view is represented as the composition of components, which is formally known as the composite design pattern.
Let's take a look at the following structural diagram, which shows the composite design pattern: