+ All Categories
Home > Documents > Wie überwacht man Objekte im "Alltag" ?

Wie überwacht man Objekte im "Alltag" ?

Date post: 21-Jan-2016
Category:
Upload: nicola
View: 22 times
Download: 0 times
Share this document with a friend
Description:
Wie überwacht man Objekte im "Alltag" ?. Indem man "Wanzen" an diese anbringt. Beispiel:. Überwachung eines Kaufhauses, um einen Brand oder einen Einbruch zu verhindern. Die Wanze hat z.B. zwei verschiedene Funktionen integriert: - Rauchmelder - Bewegungsmelder. Feuerwehr. Polizei. - PowerPoint PPT Presentation
38
Wie überwacht man Objekte im "Alltag" ?
Transcript
Page 1: Wie überwacht man Objekte im "Alltag" ?

Wie überwacht man Objekte im "Alltag" ?

Page 2: Wie überwacht man Objekte im "Alltag" ?

Indem man "Wanzen" an diese anbringt.

Page 3: Wie überwacht man Objekte im "Alltag" ?

Beispiel:

Page 4: Wie überwacht man Objekte im "Alltag" ?

Überwachung eines Kaufhauses, um einen Brand oder einen Einbruch zu verhindern. Die Wanze hat z.B. zwei verschiedene Funktionenintegriert:

- Rauchmelder - Bewegungsmelder

Page 5: Wie überwacht man Objekte im "Alltag" ?

Feuerwehr

Rauch-melder

Bewegungs-melder

Polizei

Wanze, besteht aus:

löst Aktion aus

löst Aktion aus

Page 6: Wie überwacht man Objekte im "Alltag" ?

Es gibt auch noch andere Wanzen.

Page 7: Wie überwacht man Objekte im "Alltag" ?

Beispiel:

Page 8: Wie überwacht man Objekte im "Alltag" ?

Überwachung eines an einem - zu Kühlzwecken- Fluss liegenden AKWs, um Schäden (die statistisch pro Urknall nur zu 0,000000001 % vorkommen) von der Bevölkerung "abzuwenden".

Page 9: Wie überwacht man Objekte im "Alltag" ?

Die Wanze hat z.B. drei verschiedene Funktionen

- GAU-Melder- Sabotage-Melder- Niedrigwasser-Melder

Page 10: Wie überwacht man Objekte im "Alltag" ?

Polizei

Sabotage-Melder

Niedrigwasser-Melder

Abschaltung

Wanze, besteht aus:

löst Aktion aus

löst Aktion aus

GAU-Melder

Evakuierung

löst Aktion aus

Page 11: Wie überwacht man Objekte im "Alltag" ?

Wanzen in Java

Page 12: Wie überwacht man Objekte im "Alltag" ?

1. Beispiel:An eine Schaltfläche (Button) wird eine Wanze angebracht. Diese überwacht, ob vom Anwender eine spezielle Aktion ausgeführt wird:d.h. ob der Button "angeklickt" bzw. die Leertaste gedrückt wird oder ...

Page 13: Wie überwacht man Objekte im "Alltag" ?

… die Maus den Button "betritt" bzw. den Button "verlässt".Wenn die Aktion ausgeführt wird, wird automatisch ein spezielles Objekt erzeugt bzw. "geworfen".

Page 14: Wie überwacht man Objekte im "Alltag" ?

Dieses spezielle Objekt wird dann einer speziellen Methode der Wanze übergeben (von dieser Methode mit einem "Fischernetz eingefangen").Anschaulich illustriert in der nächsten Folie …

Page 15: Wie überwacht man Objekte im "Alltag" ?

entsprechende Meldung auf BS

Button betreten

Button verlassen

Wanze, besteht u.a. aus folgenden (Überwachungs)Methoden

löst Aktion aus, z.B:

löst Aktion aus, z.B:

Buttonanklicken

entsprechende Meldung auf BS

löst Aktion aus, z.B:

entsprechende Meldung auf BS

Page 16: Wie überwacht man Objekte im "Alltag" ?

Zeitlicher Verlauf könnte z.B. so aussehen:

Page 17: Wie überwacht man Objekte im "Alltag" ?

Button anklicken : dadurch wird automatisch ein spezielles Objekt erzeugt (geworfen)

Zeitlicher Verlauf : von oben nach unten

Dieses Objekt wird automatisch einer speziellen Methode der Wanze übergeben, die dann automatisch ausgeführt wird.

Button anklicken : dadurch wird automatisch ein spezielles Objekt erzeugt (geworfen)

Dieses Objekt wird automatisch einer speziellen Methode der Wanze übergeben, die dann automatisch ausgeführt wird.

Page 18: Wie überwacht man Objekte im "Alltag" ?

zugehöriges, einfaches Demo-Beispiel in Java

Im folgenden Demo-Programm wird kein Wert auf Design gelegt. Es soll nur das Prinzip eines Listeners verstanden werden.

Page 19: Wie überwacht man Objekte im "Alltag" ?

package listener1;import java.awt.Container;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;

public class MainListener1 {

public static void main(String[] args) { Fenster fenster; fenster = new Fenster(); }}

Page 20: Wie überwacht man Objekte im "Alltag" ?

class Fenster extends javax.swing.JFrame{ public Fenster(){ JButton button; Container mycont; ButtonActionListener bal; button = new JButton("klick mich"); bal = new ButtonActionListener(); mycont = getContentPane(); add(button); button.addActionListener(bal); this.setSize(500, 500); this.setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }}

class ButtonActionListener implements ActionListener { public void actionPerformed(ActionEvent ae) { System.out.println("es wurde gefeuert "); }}

einfangende Methode

anbringen der Wanze bal an den Button "button", der beim Klicken feuert.

Page 21: Wie überwacht man Objekte im "Alltag" ?

2. Beispiel:Ein Timer (Uhr) feuert in periodischen (z.B. 1 ms) Abständen (d.h. er erzeugt bzw. "wirft" ein spezielles Objekt).An diesen Timer wird eine Wanze angebracht. Diese überwacht, wann der Timer feuert.

Page 22: Wie überwacht man Objekte im "Alltag" ?

Wenn er feuert, wird automatisch dieses spezielle Objekt einer speziellen Methode übergeben (von dieser Methode "eingefangen").

Page 23: Wie überwacht man Objekte im "Alltag" ?

Zeitlicher Verlauf könnte z.B. so aussehen:

Page 24: Wie überwacht man Objekte im "Alltag" ?

Timer feuert : dadurch wird automatisch ein spezielles Objekt erzeugt (geworfen)

Zeitlicher Verlauf : von oben nach unten

Dieses Objekt wird automatisch einer speziellen Methode der Wanze übergeben, die dann automatisch ausgeführt wird.

Timer feuert : dadurch wird automatisch ein spezielles Objekt erzeugt (geworfen)

Dieses Objekt wird automatisch einer speziellen Methode der Wanze übergeben, die dann automatisch ausgeführt wird.

Page 25: Wie überwacht man Objekte im "Alltag" ?

zugehöriges, einfaches Demo-Beispiel in Java

Im folgenden Demo-Programm wird kein Wert auf Design gelegt. Es soll nur das Prinzip eines Listeners verstanden werden.

Page 26: Wie überwacht man Objekte im "Alltag" ?

package listener3;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.Timer;

public class MainListener3 { public static void main(String[] args) { Timer timer; TimerActionListener tal; tal = new TimerActionListener(); timer = new Timer(2000,tal); timer.start(); // Endlosschleife while(true) ; }}

class TimerActionListener implements ActionListener { public void actionPerformed(ActionEvent ae) { System.out.println("x"); }}

einfangende Methode

anbringen der Wanze tal an den Timer "timer", der periodisch alle 2000 ms feuert

Page 27: Wie überwacht man Objekte im "Alltag" ?

3. Beispiel:An ein Objekt (z.B. eine Zielperson) wird eine Wanze angebracht ("sie wird von einem Detektiv überwacht"). Diese überwacht, ob das Objekt (besser Attribute des Objekts wie z.B. eine Zahl) verändert wird.

Page 28: Wie überwacht man Objekte im "Alltag" ?

Wenn etwas verändert wird, wird automatisch ein spezielles Objekt erzeugt bzw. "geworfen". Dieses spezielle Objekt wird dann einer speziellen Methode übergeben (von dieser Methode "eingefangen").

Page 29: Wie überwacht man Objekte im "Alltag" ?

Wenn er feuert, wird automatisch dieses spezielle Objekt einer speziellen Methode übergeben (von dieser Methode "eingefangen").

Page 30: Wie überwacht man Objekte im "Alltag" ?

Zeitlicher Verlauf könnte z.B. so aussehen:

Page 31: Wie überwacht man Objekte im "Alltag" ?

Objekt wird geändert : dadurch wird automatisch ein spezielles Objekt erzeugt (geworfen)

Zeitlicher Verlauf : von oben nach unten

Dieses Objekt wird automatisch einer speziellen Methode der Wanze übergeben, die dann automatisch ausgeführt wird.

Objekt wird geändert : dadurch wird automatisch ein spezielles Objekt erzeugt (geworfen)

Dieses Objekt wird automatisch einer speziellen Methode der Wanze übergeben, die dann automatisch ausgeführt wird.

Page 32: Wie überwacht man Objekte im "Alltag" ?

Hier das UML ...

Page 33: Wie überwacht man Objekte im "Alltag" ?

Zielperson- zahl : int

Detektiv- zielperson : Zielperson

schwarzer Pfeil: Assoziation

roter, gestrichelter geschwungener Pfeil: zeigt vom Ereignis (fire) zur Wanze (Lauscher)

Page 34: Wie überwacht man Objekte im "Alltag" ?

zugehöriges, einfaches Demo-Beispiel in Java

Im folgenden Demo-Programm wird kein Wert auf Design gelegt. Es soll nur das Prinzip eines Listeners verstanden werden.

Page 35: Wie überwacht man Objekte im "Alltag" ?

class Zielperson extends Observable{ private int zahl; public Zielperson (){ zahl=0; } public void change(){ zahl=zahl+1; setChanged(); notifyObservers("Zahl"); }

public int getZahl(){ return zahl; }}

diese Methoden veranlassen, daß gefeuert wird:setChanged() setzt ein Änderungsflag und zeigt damit an, daß eine Änderung erfolgt ist.Falls eine Änderung erfolgte, wird sie durch notifyObservers("Zahl") übermittelt. Gibt es keine Änderung, dann übermittelt notifyObservers() auch nichts.

Der Methode notifyObservers(...) kann noch ein Objekt (hier wird implizit ein String in die Klasse Object gecastet) als Parameter übergeben werden. Dieses kann dann vom "Detektiv" verwendet (ausgewertet) werden.

Page 36: Wie überwacht man Objekte im "Alltag" ?

class Zielperson extends Observable{ private int zahl; public Zielperson (){ zahl=0; } public void change(){ zahl=zahl+1; setChanged(); notifyObservers("Zahl"); }

public int getZahl(){ return zahl; }}

Dadurch wird Zielperson wird zu einem Ereignisauslöser gemacht, d.h. zum Leben erweckt. Im Gegensatz dazu muß ein Button oder ein Timer nicht zu einem Ereignisauslöser gemacht werden.Diese können ohne weitere Vorbereitung feuern bzw. Ereignisobjekte werfen (man braucht dann nur noch eine Wanze).

Page 37: Wie überwacht man Objekte im "Alltag" ?

class Detektiv implements Observer{ private Zielperson zielperson;

public Detektiv(Zielperson ziel){ zielperson = ziel; } public void update(Observable m, Object o) { if (m == zielperson) { System.out.print((String)o+" "); System.out.println(zielperson.getZahl()); } }}

einfangende Methode

Page 38: Wie überwacht man Objekte im "Alltag" ?

package listener2;import java.util.Observable;import java.util.Observer;

public class MainListener2 { public static void main(String[] args) { int i; Detektiv watson; Zielperson z; z = new Zielperson(); watson = new Detektiv(z); // An Zielperson den Lauscher anbringen z.addObserver(watson); for(i=0;i<10;i++){ z.change(); } }}

anbringen der Wanze watson an das Objekt z


Recommended