Presentation is loading. Please wait.

Presentation is loading. Please wait.

Polymorphism and Observers

Similar presentations


Presentation on theme: "Polymorphism and Observers"— Presentation transcript:

1 Polymorphism and Observers
Chapter 4.9 Polymorphism and Observers Karel J. Robot: A Gentle Introduction to the Art of Object-Oriented Programming in Java by Joseph Bergin et al. By E.F. Teevan

2 Observers - 4.9 An Observer is an object which is controlled by an observable object An interface is needed for the two to communicate: public interface RobotListeners { public void action(); } An observer example: public class WalkListener extends ur_Robot implements RobotListener { public WalkListener(int street, int avenue, Directions.Direction dir, int beepers) { super(street, avenue, dir, beepers); } public void action() { move(); } } Uses the RobotListener interface WalkListeners move one block when action method is called. WalkListeners are Observers

3 Observers II - 4.9 The observable object class: public class ObservablePicker extends ur_Robot { private RobotListener myListener; public ObservablePicker(int street, int avenue, Directions.Direction direction, int beepers) { super(street, avenue, direction, beepers); } public void register(RobotListener listener) { myListener = listener; } public void pickBeeper() { super.pickBeeper(); myListener.action(); } } instance variable constructor New method for ObservablePickers Instantiates the instance variable myListener New method for ObservablePicker Calls action method of RobotListener class for myListener

4 Observers III - 4.9 The main method: public class ObserverTest implements Directions { public static void main(String args[]) { WalkListener2 tom = new WalkListener2(1, 1, North, 0); ObservablePicker2 jerry = new ObservablePicker2(2, 3, East, 0); jerry.register(tom); jerry.pickBeeper(); } } CONTROLLED tom is an Observer jerry is observable CONTROLLER See fourNine in the Bowling workspace


Download ppt "Polymorphism and Observers"

Similar presentations


Ads by Google