Patterns/Topics
 
Model-View-Controller (MVC)
Divide application into three components:
   Model -- encapsulates core data and functionality, independent of input and output considerations.
   View -- responsible for display of information to the user.
   Controller -- Associated with each view. Receives input events which are translated into service requests for the model or view.