using System; using System.Collections.Generic; /// /// This interface defines an observable. Since registering those is fairly generic, we also just keep a generic one around. /// Works somewhat similar to IObservable, except that it's our own really. /// While we use generics here, theoretically hardcoding Item types would do the job /// public interface IModelObservable { IDisposable RegisterObserver(IShopModelObserver observer); void RemoveObserver(IShopModelObserver observer); void OnRemove(T val); void OnSelect(T val); }