Skip to main content
Jump to: navigation, search

Difference between revisions of "OTExample Observer"

Line 1: Line 1:
'''This is a reusable implementation of the omnipresent design pattern "Observer".'''
+
===This is a reusable implementation of the omnipresent design pattern "Observer"===
  
Note, that a well designed program in Object Teams will usually not require an explicit Observer infrastructure. See the [[OTExample_Stopwatch | Stopwatch]] example for an example, how a plain callin-binding ({{{otjld|4|1}}}) suffices.
+
Note, that a well designed program in Object Teams will usually not require an explicit Observer infrastructure. See the [[OTExample_Stopwatch | Stopwatch]] example for an example, how a plain callin-binding ({{otjld|4|}}) suffices.
  
 
This demo should, however, give a quick understanding to some techniques of Object Teams for all who are familiar with the Observer pattern (''the OTDT ships with a simpler version of this pattern'').
 
This demo should, however, give a quick understanding to some techniques of Object Teams for all who are familiar with the Observer pattern (''the OTDT ships with a simpler version of this pattern'').
Line 24: Line 24:
 
:[[OTExample_Observer/ObservingClose|ObservingClose]]</td>
 
:[[OTExample_Observer/ObservingClose|ObservingClose]]</td>
 
<td style="vertical-align:top;">'''Two applications of the Observer pattern'''<br>
 
<td style="vertical-align:top;">'''Two applications of the Observer pattern'''<br>
binding the above open spots using callin ({{{otjld|4|}}}) and callout ({{{otjld|3}}}) bindings.</td>
+
binding the above open spots using callin ({{otjld|4|}}) and callout ({{otjld|3|}}) bindings.</td>
 
</tr><tr>
 
</tr><tr>
 
<td>flower_example/
 
<td>flower_example/

Revision as of 06:50, 23 February 2010

This is a reusable implementation of the omnipresent design pattern "Observer"

Note, that a well designed program in Object Teams will usually not require an explicit Observer infrastructure. See the Stopwatch example for an example, how a plain callin-binding (OTJLD §4) suffices.

This demo should, however, give a quick understanding to some techniques of Object Teams for all who are familiar with the Observer pattern (the OTDT ships with a simpler version of this pattern).

protocol/
ObserverPattern
This implements the GoF pattern very straight forwardly.

Open spots are:

  • method Subject.changeOp which should be triggered at relevant base-level events
  • and the abstract method Observer.update() which should realize the Observer's reaction.
flower_example/
Bee
Hummingbird
Flower
Implement some base entities
flower_example/
ObservingOpen
ObservingClose
Two applications of the Observer pattern
binding the above open spots using callin (OTJLD §4) and callout (OTJLD §3) bindings.
flower_example/
Main
A simple main program

Back to the top