The Observable design pattern is used in many important Java APIs. One well-known example is a JButton that uses the ActionListener API to execute an action. In this example, we have an ActionListener ...
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.