homeSoftwaredesign Softwaredesign: Motivation Prof. Dr. Uwe Schmidt FH Wedel

Motivation

weiter

weiter

Motivation

Erzeugungsprozess
kapseln
vor den Anwendern verstecken
weiter
merke
"naive" OOP
Konstruktoren über die gesamten Quellen verstreut
weiter
merke
Konstruktor <--> Klassenname
Klienten kennen konkrete Spezialklassen
weiter
merke
unwartbar
unflexibel
weiter
merke
Erzeugung von konkreten Objekten nicht direkt vom Klienten
sondern über eine definierte Schnittstelle
static member Funktionen
keine public Konstruktoren
weiter
Beispiel
verkettet Liste in Java
 
public
class LinkedList {
  
  private
  LinkedList next;
 
  private
  Object info;
 
 
  // Singleton fuer leere Liste
 
  protected
  static
  LinkedList EMPTY = new LinkedList();
 
 
  // nicht oeffentlicher Konstruktor
 
  protected
  LinkedList() {
    next = null;
    info = null;
  }
 
 
  // Fabrikmethoden
 
  public
  static
  LinkedList empty() {
    return EMPTY;
  }
 
  public
  static
  LinkedList singleton(Object e) {
    LinkedList res = new LinkedList();
 
    res.next = EMPTY;
    res.info = e;
 
    return res;
  }
 
 
  // die anderen Methoden
  // ...
}
weiter
merke
leere Liste: Referenz auf ein Spezialobjekt
weiter
zwei Fabrikmethoden
 
public static
LinkedList LinkedList.empty();
 
public static
LinkedList LinkedList.singleton(Object e);
weiter
Konstruktionsprozess versteckt
leere Liste ist ein Singleton.
weiter
merke
Beispiel ist nur der 1. Schritt
möglicherweise zusätzliche Indirektstufen notwendig
weiter
merke
virtuelle Funktionen anstatt statische Funktionen
erhöhte Flexibilität
weiter

Letzte Änderung: 06.12.2016
© Prof. Dr. Uwe Schmidt
Prof. Dr. Uwe Schmidt FH Wedel