Omar Laurino edited Architecture.tex  about 10 years ago

Commit id: 1d2c599c885597f877755196f20511b676f5f830

deletions | additions      

       

\subsection{Inversion of Control}  We achieve loose coupling by an extensive use of Java Interfaces: components, events, and event listeners, for example, are all defined by interfaces whose implementation can, to some extent, be freely interchangeable.  Moreover, Inversion of Control is employed to decouple the implementation of components from the run time context: methods in the Interface are callback, callbacks,  and some of these callbacks get Interface-typed arguments which provide them context instances during the application execution. For this reason, this pattern is also sometimes referred to as \emph{Dependency Injection}. Consider, for example, Iris Components: they are the main providers of Iris functionality, and they can correspond to buttons and menu items on the Iris desktop, loggers, data handlers, etc. They must implement the IrisComponent interface, which is listed in Listing \ref{lst:component}.