package eu.dnetlib.miscutils.observer;

/**
 * Declares the JDK-like standard observable pattern as a java interface. Implementors can decide whether to extends
 * AbstractObservable or to use another custom implementation of the observer/observable pattern.
 * 
 * @author marko
 * @see eu.dnetlib.miscutils.AbstractObservable
 * 
 * @param <T>
 *            observer
 */
public interface Observable<T extends Observer<? extends Observable<? extends T>>> {
	/**
	 * add a given observer to this object.
	 * 
	 * @param observer
	 *            observer
	 */
	void addObserver(T observer);
}
