org.puremvc.java.interfaces.IObserver Maven / Gradle / Ivy
Show all versions of PureMVC Show documentation
//
// PureMVC Java Standard
//
// Copyright(c) 2019 Saad Shams
// Your reuse is governed by the Creative Commons Attribution 3.0 License
//
package org.puremvc.java.interfaces;
import java.util.function.Consumer;
/**
* The interface definition for a PureMVC Observer.
*
* In PureMVC, IObserver
implementors assume these responsibilities:
*
*
* - Encapsulate the notification (callback) method of the interested object.
* - Encapsulate the notification context (this) of the interested object.
* - Provide methods for setting the interested object' notification method and context.
* - Provide a method for notifying the interested object.
*
*
* PureMVC does not rely upon underlying event
* models such as the one provided with Flash,
* and ActionScript 3 does not have an inherent
* event model.
*
* The Observer Pattern as implemented within
* PureMVC exists to support event driven communication
* between the application and the actors of the
* MVC triad.
*
* An Observer is an object that encapsulates information
* about an interested object with a notification method that
* should be called when an INotification
is broadcast. The Observer then
* acts as a proxy for notifying the interested object.
*
* Observers can receive Notification
s by having their
* notifyObserver
method invoked, passing
* in an object implementing the INotification
interface, such
* as a subclass of Notification
.
*
* @see IView IView
* @see org.puremvc.java.interfaces.INotification INotification
*/
public interface IObserver {
/**
* Set the notification method.
*
* The notification method should take one parameter of type INotification
*
* @param notifyMethod the notification (callback) method of the interested object
*/
void setNotifyMethod(Consumer notifyMethod);
/**
* Set the notification context.
*
* @param notifyContext the notification context (this) of the interested object
*/
void setNotifyContext(Object notifyContext);
/**
* Notify the interested object.
*
* @param notification the INotification
to pass to the interested object's notification method
*/
void notifyObserver(INotification notification);
/**
* Compare the given object to the notification context object.
*
* @param object the object to compare.
* @return boolean indicating if the notification context and the object are the same.
*/
boolean compareNotifyContext(Object object);
}