Model and View Objects in FavaBeans

FavaBeans is based on the "Model, View, Controller" design paradigm as introduced in Smalltalk (Goldberg89 and Krasner88). However, we differ from the Smalltalk pattern in choosing to include the functionality of a Controller object in the View. This practice is well-established by Collins95, and its use in Java Swing is documented in Fowler00.

Collins95 suggests a nomenclature whereby the combined View/Controller object is referred to as a delegate, thereby calling the modified design pattern the "Model, Delegate" approach. We do not adopt this naming scheme; instead, we describe Model and View objects with the assumption that the View objects take on the role of a Controller as well.