Um unsere Anwendungen überschaubar zu halten, empfiehlt es sich dem Separation of Concerns-Entwurfsmuster zu folgen. Wir könnten es umgangssprachlich vielleicht auch Schuster bleib bei deinem Leisten-Prinzip nennen.

Wir teilen die Verantwortlichkeiten unserer Software - Komponenten in drei Teile:

  • Model
  • View
  • Controller

Das Model halten wir unabhängig von allen Userinterface- oder sonstigen nicht-JDK-Imports. Idealerweise besteht es nur aus POJOs. Die View hingegen ist hochgradig abhängig von der Plattform, für die wir programmieren. Die View beschränkt sich auf ihre Aufgabe Dinge optisch darzustellen. Der Controller übernimmt die Vermittlerrolle zwischen Model und View.

Das Zusammenspiel der Bestandteile der Model-View-Controller Architektur wird in dem Video Model View Controller Architektur - Skizze gezeigt. Ein einfaches JavaFX Beispiel soll das exemplarisch zeigen. Hierbei wird ein Button unterhalb eines Labels platziert. Dieser zeigt an, wir oft der Button betätigt wurde. MVC - Counter Application (JavaFX).

Diese Form der Architektur finden wir in vielen anderen Plattformen unverändert wieder, zum Beispiel in der nativen Android-Programmierung1 mit Kotlin/Java und in der nativen iOS - Programmierung2 (Swift).


  1. im Android wird der Controller allerdings als Activity bezeichnet, siehe Android Developers 

  2. im iOS wird der Controller als “ViewController” bezeichnet, siehe Apple Developer