TU Wien Diskussion:Objektorientierte Programmiertechniken VU (Puntigam)/Zusammenfassung
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 einesynchronized
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]
Streams[Quelltext bearbeiten]
- 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);