private static void RunDesignPattern_RegistryofSingletons() { Console.WriteLine("Start (9) Run Design Pattern - Registry of Singletons"); var description = "Registry of Singletons (Multiton pattern)" + "\n" + "目的:共同管理單例的Instance。" + "\n" + "系統運作中,單例的Instance非常多,變成須要有一個共通的地方來管理會使得取出Instance更加簡便。"; Console.WriteLine(description); Console.WriteLine("------------------------------------------------------------------------"); var o1 = SingletonRegistry.GetInstance <Class1>(); var o2 = SingletonRegistry.GetInstance <Class1>(); var o3 = SingletonRegistry.GetInstance <Class2>(); Console.WriteLine(o1); Console.WriteLine(o2); Console.WriteLine(o3); Console.WriteLine("Compare whether o1 and o2 are equal?"); Console.WriteLine(object.ReferenceEquals(o1, o2)); Console.WriteLine("Compare whether o1 and o3 are equal?"); Console.WriteLine(object.ReferenceEquals(o1, o3)); Console.WriteLine("Done. 請按任意鍵繼續"); Console.ReadLine(); }
public InstanceSingletonProviderCreator( DiContainer container, SingletonRegistry singletonRegistry) { _singletonRegistry = singletonRegistry; _container = container; }
public MonoBehaviourSingletonProviderCreator( DiContainer container, SingletonRegistry singletonRegistry) { _singletonRegistry = singletonRegistry; _container = container; }
public GameObjectSingletonProviderCreator( DiContainer container, SingletonRegistry singletonRegistry) { _singletonRegistry = singletonRegistry; _container = container; }
public TypeSingletonProvider( TypeSingletonLazyCreator lazyCreator, SingletonId id, SingletonRegistry singletonRegistry) { _singletonRegistry = singletonRegistry; _id = id; _lazyCreator = lazyCreator; Init(); }
public InstanceSingletonProvider( InstanceSingletonLazyCreator lazyCreator, SingletonRegistry singletonRegistry, SingletonId id) { _singletonRegistry = singletonRegistry; _lazyCreator = lazyCreator; _id = id; Init(); }
public GameObjectSingletonProvider( GameObjectSingletonLazyCreator creator, SingletonId id, SingletonRegistry singletonRegistry) { _singletonRegistry = singletonRegistry; _id = id; _creator = creator; Init(); }
public FactorySingletonProvider( IFactorySingletonLazyCreator lazyCreator, SingletonRegistry singletonRegistry, SingletonId id) { _id = id; _singletonRegistry = singletonRegistry; _lazyCreator = lazyCreator; Init(); }
public PrefabResourceSingletonProvider( PrefabResourceSingletonId resourceId, Type componentType, PrefabResourceSingletonLazyCreator lazyCreator, SingletonRegistry singletonRegistry, PrefabResourceSingletonProviderCreator owner) { _owner = owner; Assert.That(componentType.DerivesFromOrEqual<Component>()); _singletonRegistry = singletonRegistry; _lazyCreator = lazyCreator; _componentType = componentType; _resourceId = resourceId; _singletonId = new SingletonId(componentType, resourceId.ConcreteIdentifier); Init(); }
public MonoBehaviourSingletonProvider( MonoBehaviourSingletonId monoBehaviourId, Type componentType, MonoBehaviourSingletonLazyCreator lazyCreator, SingletonRegistry singletonRegistry, MonoBehaviourSingletonProviderCreator owner) { _owner = owner; Assert.That(componentType.DerivesFromOrEqual<Component>()); _singletonRegistry = singletonRegistry; _lazyCreator = lazyCreator; _componentType = componentType; _monoBehaviourId = monoBehaviourId; _singletonId = new SingletonId(componentType, monoBehaviourId.ConcreteIdentifier); Init(); }
public TypeSingletonProviderCreator( DiContainer container, SingletonRegistry singletonRegistry) { _container = container; _singletonRegistry = singletonRegistry; }
public PrefabResourceSingletonProviderCreator( DiContainer container, SingletonRegistry singletonRegistry) { _singletonRegistry = singletonRegistry; _container = container; }