Model-Delegate is a variation of the ModelViewController (MVC) pattern. Two of the three responsibilities from MVC, namely the view and controller part, are brought together in a so-called User Interface (UI) Delegate. Hence classes with the following roles can be distinguished: 

* Model classes: hold data specific to the application

* View/Controller classes: present information to and interact with the user.

Sun says that JavaSwing is more correctly described as using the Model-Delegate pattern rather than the MVC pattern.