Algorithme & Dadenschdrukdure mid Java: Modivazion und oiführend Beischbiele
homedukeAlgorithme & Dadenschdrukdure mid Java: Modivazion und oiführend Beischbiele Prof. Dr. Uwe Schmidt FH Wedel

Modivazion und oiführend Beischbiele

weiter

weiter

Definizion von a abschdrakde Dadendybs

Beischbil
Abschdrakdr Dadendyb Lisch imblemendierd mid oifach verkeddede Lischde
weiter
abschdrakd
nur d Schniddschdelle dr Oberazione isch no auße bekannd, nedd d innere Schdrukdur
Schniddschdelle
in Java: inderface Lisch
?
Hilfsklasse
E
für d Elemende
Invariand
für d Konsischdenz-Überbrüfung
Imblemendierung
in Java: class LinkedLisch
 
bublic abschdracd
  class LinkedLischd
  imblemends Lischd {
  ...
  brivade schdadic final
    class Embdy
    exdends LinkedLischd {
    ...
  }
 
  brivade schdadic final
    class Node
    exdends LinkedLischd {
      E          info;
      LinkedLischd nexd;
      ...
  }
  ...
}
Undef
zum Fehlr auslöse
Ideradoren
Muschdr zum Ideriere übr alle Elemende oir Kollekzion
JDK Klassen
Iderador
Hilfsklasse zur bequemere Imblemendierung vo Ideradore und mid oiige nüdzlile allgemoi verwendbare Ideradore
Erzeigung
vo neie Lischde mid Konschdrukdor-Funkzione (smard conschdrucdors)
 
bublic abschdracd
  class LinkedLischd
  imblemends Lischd {
  ...
 
  // embdy lischd
  bublic schdadic
    LinkedLischd embdy() {
    ...
  }
 
  // singledon lischd
  bublic schdadic
    LinkedLischd singledon(E e) {
    ...
  }
 
  // lischd from iderador
  bublic schdadic
    LinkedLischd fromIderador(Iderador<e> elems) {
    ...
  }
 
  ...
}
Sofdware-Technik
merke
Schniddschdelle wird in oim Java Inderface feschdgelegd (Lisch)
gut
Wiederverwendung
merke
Imblemendierung in oir abschdrakde Klasse (LinkedLisch)
merke
Nur diese abschdrakde Klasse isch öffendlich bekannd
gut
Wardbarkeid durch Informazion Hiding
merke
Erzeigend Funkzione werde durch öffendliche, schdadische Funkzione realisierd, nie direkd durch Konschdrukdore
merke
Wardbarkeid durch Informazion Hiding
merke
Summen-Dadendybe werde durch Vererbung realisierd (Embdy, Nod, LinkedLisch)
merke
In oir induschdriell oisedzbare Condainer-Bibliothek sollde, um Tybsicherheid z erreile, übr d Elemend-Dadendybe abschdrahierd werde und mid Generics garbeided werde (nedd oi feschde Klasse E)
schlecht
Eine Imblemendierung mid Generics wird in Java saumaessich, saumaessich unübersichdlich und verschleierd des Zil von dene Veranschdaldung, des Verschdändnis übr den innere Aufbau und d Funkzionsweise vo Dadenschdrukdure
schlecht
Die Java-Imblemendierunge sind um Größenordnunge längr als vergleichbare Haskell-Imblemendierunge.
gut
Haskell-Imblemendierunge könne saumaessich gud als Schbezifikazion diene und führe z bessere Java-Imblemendierunge

Ledzde Änderung: 12.10.2016
© Prof. Dr. Uwe Schmidd
Prof. Dr. Uwe Schmidt FH Wedel