Grob ein Anwendungszweck:
Du hast eine Gui und ein Model Klasse für die Daten, ändern sich die Daten woll die Gui darüber informiert werden, sprich Model ruft eine Methode von Gui auf. Das Model hat nun ein Objekt von Gui. Tja, was ist jetzt, wenn du mehrer Guis (Ansichten) hast? zb in Excel die Tabellen Ansicht und ein Diagram.
Du könntest nun die Gui ein Interface implementieren lassen, dass die Methode beinhaltet, dass das Model bei geänderten Daten aufruft. Dieses Interface kann jetzt auch von anderen Guis implementiert werden und das Model kann eine ganze Liste von utnerschiedlichen Guis beinhalten, die bei einer änderung informiert werden sollen. Durch die Impelmentierung auf das Interface sind die Elemente lose gekoppelt. Das Model weiß nicht genau ob die Gui jetzt eine Tabelle oder ein Diagramm ist, es weis nur dass es, durch das Interface, ganz sicher ein Methode (zb werteGeändert()

implementiert...usw blablaba