using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace BlubbFish.Utils { public abstract class OwnModel where T : class { private static readonly Lazy _instance = new Lazy(() => CreateInstanceOfT()); private List observer = new List(); public static T Instance { get { return _instance.Value; } } private static T CreateInstanceOfT() { return Activator.CreateInstance(typeof(T), true) as T; } public void setObserver(OwnView tray) { this.observer.Add(tray); tray.update(); } protected void update() { this.observer.ForEach(delegate(OwnView tray) { tray.update(); }); } abstract protected void init(); } }