2016-07-30 24 views
1

ich zur Zeit lese das „effektive Java“ Buch und in diesem Buch verwendet der Verfasser häufig die Worte Instrumentierung, Benachrichtigung und Synchronisation. Als Junior Developer, wenn ich diese Themen im Internet recherchiere, sind die Ergebnisse sehr unterschiedlich. Aus diesem Grund kann ich nicht verstehen, was er in seinem Buch meint.Bedeutung der Instrumentation, Benachrichtigung und Synchronisation

Als Beispiel, ich teile einen Absatz, der diese Wörter enthält.

Dieser Rat kann etwas umstritten, da viele Programmierer haben Subklassen gewöhnlichen konkreten Klassen gewöhnt Einrichtungen wie Instrumentierung, Benachrichtigung und Synchronisation hinzuzufügen oder Funktionalität zu begrenzen

Kurze Einführung Zu diesen Terminologien würde mir dieses Thema und das Buch natürlich sehr viel näher bringen.

Antwort

1

Der Kontext des Abschnitts in diesem Buch behandelt das Erstellen von Unterklassen, um die ursprüngliche Klasse mit benutzerdefinierten Funktionen anzureichern. Zum Beispiel haben Sie eine ArrayList und möchten, dass Ihnen ArrayList immer dann eine Benachrichtigung sendet, wenn etwas hinzugefügt wird. Dann wäre dies eine vereinfachte Ansatz:

public class MyNotifyingArrayList<E> extends ArrayList<E> { 

    private Notifiable notifiable; 

    public MyNotifyingArrayList(Notifiable notifiable) { 
    this.notifiable = notifiable; 
    } 

    @Override 
    public boolean add(E e) { 
    boolean success = super.add(e); 
    if (success) { 
     notifiable.notify(e); 
    } 
    return success; 
    } 
} 

Dies ist ein Beispiel für notification wäre. In Bezug auf instrumentation Ich nehme an, er dies im Sinne hatte:

https://docs.oracle.com/javase/7/docs/api/java/lang/instrument/Instrumentation.html

Und synchronization bedeutet wahrscheinlich, dass er will, Thread-sicheren Fähigkeiten Klassen hinzuzufügen, den Thread-sicher zu sein, nicht ursprünglich implementiert.