home  |  suche  |  kontakt/johner  |  institut 
studierende  |  tech-docs  |  mindmailer 

Übersicht

Ein Entwurfsmuster beschreibt ein bestimmtes , in einem bestimmten Kontext immer wiederkehrendes Entwurfsproblem sowie ein generisches Schema zu dessen Lösung.

Dies kann die Beschreibung von Komponenten, ihren Beziehungen und Verantwortungen beinhalten. Bekannt Vertreter sind die Gang-Of-Four-Pattern (GoF).

An dieser Stelle sollen die Entwurfsmuster nicht wiederholt, sondern nur verschiedene Typen kurz vorgestellt werden.

Singelton-Pattern

Ein beliebtes Pattern, ist das Singelton-Pattern. Es hat den Charme der guten Verständlichkeit.

Dieses soll das Problem lösen, dass man eine Garantie dafür braucht, dass eine Klasse nur einmal instanziert wird. Dies kann beispielsweise für Klassen genutzt werden, welche ein Dateisystem, einen Druckerspooler oder einen Datenbankzugriff verwalten. 

Die Lösung besteht in einer Klasse, die beim ersten Zugriff eine Instanz erzeugt und bei jedem weiteren Zugriff diese Instanz zurückgibt.

In Java könnte der Code wie folgt aussehen:

 

public class MySingelton {
  private static mySingleton s = null;
  private MySingelton() {}
  public static MySingleton getInstance() {
    if (null == s) {
      s = new MySingleton();
    } 
    return s;
  }
}

 

Zentral ist hier der Konstuktor, welcher private ist, und damit die Klasse nicht mehr über new instanzieren lässt.

Model-Viewer-Controller MVC

Ein älteres aber sehr wichtiges Entwurfsmuster stellt das MVC-Pattern dar.

Das Problem besteht darin, dass Benutzerschnittstellen häufig geändert werden müssen, was eine Änderung des Applikationscodes erfordert.

Die Lösung schlägt drei Komponenten vor:

     

  • Model, welches die Daten repräsentiert, unabhängig von Darstellung oder Eingabeverhalten
  • View, welche die Darstellung übernimmt, und
  • Controller, welcher für die Steuerung verantwortlich ist, beispielsweise um auf Benutzerinteraktionen oder auf Änderung der Daten im Modell zu reagieren

Diese Trennung erlaubt nicht nur Daten unterschiedlich darzustellen (z.B. als Tabelle, Balkendiagramm, Kuchendiagramm), sondern auch technisch unterschiedlich Benutzerschnittstellen zu nutzen (z.B. HTML, Swing, SWT) ohne dass die Anwendung komplett umgeschrieben werden müsste.