homeSoftwaredesign Softwaredesign: Beispiel: Strategie Prof. Dr. Uwe Schmidt FH Wedel

Beispiel: Strategie

weiter

weiter

eine Array-Klasse mit Sortierfunktion: Array

public
class Array {
 
  protected
  int [] a;
 
  //--------------------
 
  // the reference to the compare object
  // defining the compare method
 
  protected
  CompareFunction c;
 
  //--------------------
 
  public
  Array(CompareFunction c) {
    // a = ...
    this.c = c;
  }
 
  //--------------------
 
  // the template method
 
  public
  void sort() {
    // simple bubble sort
    // --> 2 nested loops
    for (int i = a.length -1;
         i >= 0;
         --i ) {
      for (int j = 0;
           j < i;
           ++j ) {
        if ( c.compare(a[j]a[j+1]) > 0 ) {
          int tmp = a[j];
          a[j]    = a[j+1];
          a[j+1]  = tmp;
        }
      }
    }
  }
}
weiter

weiter

eine Schnittstelle für Vergleichsoperationen

public
interface CompareFunction {
  abstract
  public
  int compare(int iint j);
}
weiter

weiter

eine Vergleichsfunktion für aufsteigende Sortierung: AscendingCompare

public
class AscendingCompare
  implements CompareFunction {
 
    public
    int compare(int iint j) {
      return
        ( i == j )
        ? 0
        :
        ( i > j )
        ? +1
        : -1;
    }
}
weiter

weiter

eine Vergleichsfunktion für absteigende Sortierung: DescendingCompare

public
class DescendingCompare
  implements CompareFunction {
 
    public
    int compare(int iint j) {
      return
        ( i == j )
        ? 0
        :
        ( i < j )
        ? +1
        : -1;
    }
}

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