homeSoftwaredesign Softwaredesign: Beispiel: Adapter für eine Liste Prof. Dr. Uwe Schmidt FH Wedel

Beispiel: Adapter für eine Liste

weiter

weiter

Eine abstrakte Klasse für Listen

abstract
public
class List {
 
  // ein Attribut
 
  abstract
  public
  int len();
 
  //--------------------
  // ein Praedikat mit default-Implementierung
  // --> abstrakte Klasse, nicht Interface
 
  public
  boolean isEmpty() {
    return
      len() == 0;
  }
 
  //--------------------
  // Selektor auf das 1. Element
  // mit default-Implementierung
 
  public
  Object hd() {
    return
      at(0);
  }
    
  //--------------------
  // allgemeiner Selektor
 
  abstract
  public
  Object at(int i);
 
  //--------------------
  // veraendernde Methoden
  // Kopf loeschen
 
  abstract
  public
  List tl();
 
  //--------------------
  // Element anhaengen
 
  abstract
  public
  List append(Object e);
 
}
weiter

weiter

Eine konkrete Ausprägung: ListAsJavaVector

public
class ListAsJavaVector extends List {
 
  protected
  java.util.Vector v;  // <-- die Referenz
 
  //--------------------
 
  public
  ListAsJavaVector() {
    v = new java.util.Vector();
  }
 
  //--------------------
 
  public
  int len() {
    return
      v.size();
  }
 
  //--------------------
  // nur zur Laufzeitoptimierung
 
  public
  boolean isEmpty() {
    return
      v.isEmpty();
  }
 
  //--------------------
  // nur zur Laufzeitoptimierung
 
  public
  Object hd() {
    return
      v.firstElement();
  }
 
  //--------------------
 
  public
  Object at(int i) {
    return
      v.elementAt(i);
  }
 
  //--------------------
 
  public
  List tl() {
    v.removeElementAt(0);
 
    return
      this;
  }
 
  //--------------------
 
  public
  List append(Object e) {
    v.addElement(e);
 
    return
      this;
  }
}
 
weiter

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