Esempio n. 1
0
        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;
 }
Esempio n. 5
0
 public TypeSingletonProvider(
     TypeSingletonLazyCreator lazyCreator,
     SingletonId id,
     SingletonRegistry singletonRegistry)
 {
     _singletonRegistry = singletonRegistry;
     _id = id;
     _lazyCreator = lazyCreator;
     Init();
 }
Esempio n. 6
0
        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();
        }
Esempio n. 8
0
        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;
 }