TU Wien Diskussion:Objektorientierte Programmiertechniken VU (Puntigam)/Zusammenfassung

Aus VoWi
Zur Navigation springen Zur Suche springen
Verantwortlichkeiten
Zustand der Objekte, Verhalten der Objekte, sichtbare Objekte und Klassen.
Klassenzusammenhalt
Grad der Beziehungen zwischen den Verantwortlichkeiten der Klasse (sollte stark sein).
Ist hoch, wenn alle Variablen und Methoden eng zusammenarbeiten und durch den Namen der Klasse gut beschrieben sind.
Objektkopplung
Die Abhängigkeit der Objekte voneinander (sollte schwach sein).

Nebenläufige Programmierung[Quelltext bearbeiten]

  • während der Ausführung einer synchronized Methode kann kein anderer Thread eine synchronized Methode desselben Objekts ausführen
  • Synchronized Blöcke
synchronzied(this){ ... }
  • class Foo implements Runnable, new Thread(new Foo()).start()
  • Collections.synchronizedList(new LinkedList(...));

Man soll:

  • auf Einfachheit der Synchronisation achten
  • wait, notify und notifyAll möglichst vermeiden

Funktionsinterfaces[Quelltext bearbeiten]

Dokumentation

Streams[Quelltext bearbeiten]

Dokumentation

  • Stream von Array: Arrays.stream(myArray)
  • ein Element zu mehreren Elementen mit flatMap/flatMapToInt
  • Linked objects to Stream (benötigt Java 9):
    Stream.iterate(this, MyLinkedObject::next).takeWhile(o -> o != null);