The first and perhaps best-known example of the Observer pattern appears in Smalltalk Model/View/Controller (MVC), the user interface framework in the Smalltalk environment. MVC's Model class plays the role of Subject, while View is the base class for observers. Smalltalk, ET++, and the THINK class library provide a general dependency mechanism by putting Subject and Observer interfaces in the parent class for all other classes in the system.
Other user interface toolkits that employ this pattern are InterViews, the Andrew Toolkit, and Unidraw. InterViews defines Observer and Observable (for subjects) classes explicitly. Andrew calls them ``view'' and ``data object,'' respectively. Unidraw splits graphical editor objects into View (for observers) and Subject parts.