Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

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|1}}}) 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 15: Line 15:
 
</tr><tr>
 
</tr><tr>
 
<td>flower_example/
 
<td>flower_example/
:Bee
+
:[[OTExample_Observer/Bee|Bee]]
:Hummingbird
+
:[[OTExample_Observer/Hummingbird|Hummingbird]]
:Flower</td>
+
:[[OTExample_Observer/Flower|Flower]]</td>
 
<td style="vertical-align:top;">'''Implement some base entities'''</td>
 
<td style="vertical-align:top;">'''Implement some base entities'''</td>
 
</tr><tr>
 
</tr><tr>

Revision as of 07:19, 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 (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 (4) and callout (3) bindings.
flower_example/
Main
A simple main program

Back to the top