A pagina 85 del libro di Leo Brodie, Pensare in avanti, descrive un componente che chiama "Componente di interfaccia". Descrive le sue differenze e vantaggi su un'interfaccia standard come segue:
When it comes to data interfaces between modules, traditional wisdom says only that “interfaces should be carefully designed, with a minimum of complexity.” The reason for the care, of course, is that each module must implement its own end of the interface (Figure 3.8).
This means the presence of redundant code. As we’ve seen, redundant code brings at least two problems: bulky code and poor maintainability. A change to the interface of one module will affect the interface of the opposite module.
Prosegueconl'introduzionedelconcettodicomponentedell'interfaccia:
There’smoretogoodinterfacedesignthanthat.AllowmetointroduceadesignelementwhichIcallthe“interfacecomponent.”Thepurposeaninterfacecomponentistoimplement,andhideinformationabout,thedatainterfacebetweentwoormoreothercomponents(Figure3.9).
Questo modello è applicabile quando si programma in Java? Le interfacce in Java sono simili a quelle illustrate nella Figura 3.8 sopra. Se fosse necessario introdurre un oggetto componente dell'interfaccia, non sarebbe questo, insieme agli altri due oggetti, che tutti devono rispettare l'interfaccia definita? Non vedo quali vantaggi possa fornire il componente dell'interfaccia.
Qualche idea?