Web Dynpro is the SAP Net Weaver programming model for user interfaces (UIs).
This is based on the Model View Controller paradigm.
MVC Programming Model:
Every Web Dynpro application is structured according to the Model View Controller programming model:
The model forms the interface to the back end system and thus enables the Web Dynpro application access to data.
The view is mainly responsible for the displaying the data in the browser i.e. from the users perspective.
The controller lies between the view and the model. The controller formats the model data to be displayed in the view, processes the user entries made by the user, and returns them back to the model.
Component Controller is the superior of all Controllers. It is like a Global or Top Include for a program . It controls the entire activity of the Web Dynpro Component.
Component Controller is only one .You can create multiple controllers , but those are called Custom Controllers.
Whenever we want views , nodes or methods of a particular web Dynpro component to be available to the outside world( i.e. to the other web dynpro components) , we make use of Interface controller . Interface Controller is created by default when a Web Dynpro component is created.
Interface Controller would generally come into picture when you are doing component usage of some sort in web dynpro i.e. re-using views/methods/nodes of one WD component in another.
When a webdynpro component is very complex containing more than 10-15 views and corresponding context nodes , methods , events , event handlers etc , it might become tedious to handle everything in the same Component Controller . In such cases , we can create one or more custom controllers and modularize or optimize the logic into separate parts using Custom Controller.