namespace Core.Common.Base { /// /// This interface describes the methods that need to be implemented on a class of objects that are supposed to be observable. /// Being observable let classes notify observers that they have performed an action (for example changed data). /// public interface IObservable { /// /// Attach an to this . Changes in the will notify the /// . /// /// The to notify on changes. void Attach(IObserver observer); /// /// Detach an from this . Changes in the will no longer /// notify the . /// /// The to no longer notify on changes. void Detach(IObserver observer); /// /// Notifies all the observers that have been currently attached to this . /// void NotifyObservers(); } }