|
|
|||||
дык я ж написал. Чтобы нельзя было создать инстанс извне
__________________
while(live()) { hope(); } |
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
ну так сам факт, что в _instance что-то сидит достаточно чтоб кидать ошибку.Зачем флаги еще какие-то?
|
|
|||||
Цитата:
Добавлено через 2 минуты Цитата:
не получится. Соответственно, флаг обеспечивает невозможность сделать где-нибудь в коде
__________________
while(live()) { hope(); } |
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
а блин, это я с жавой попутал)
но все равно наличие флага избыточно. |
|
|||||
Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 479
|
Цитата:
|
|
|||||
undefined
защита от дурака имеет место быть в Enterprise проектах. Я согласен, что можно и так. Но, повторюсь, в этом случае предпочту ограничить доступ, если возможно. Для порядку. Добавлено через 4 минуты Appleman Этот класс очень легко модифицировать под такие нужды. какой-нибудь метод в стиле
__________________
while(live()) { hope(); } |
|
|||||
Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 479
|
Согласен. Но всё-таки не будет ли проблемой отсутствие метода прекращения регистрации объектов и их изъятия из перечня отслеживаемых? Раздувание Dictionary....
|
|
|||||
Цитата:
Туплю. Я не обратил внимание, что там флаг снова ставится в false сразу же после создания. Да, способ хороший. п.с. Малость офтоп, но мне нравится реализация синглтона в C# в Unity using UnityEngine; public class Singleton<T> : MonoBehaviour where T : MonoBehaviour { private static T _instance; private static object _lockObject = new object(); public static T Instance { get { if (applicationIsQuitting) { return null; } lock(_lockObject) { if (_instance == null) { _instance = (T) FindObjectOfType(typeof(T)); if ( FindObjectsOfType(typeof(T)).Length > 1 ) { return _instance; } if (_instance == null) { GameObject singleton = new GameObject(); _instance = singleton.AddComponent<T>(); singleton.name = "(singleton) "+ typeof(T).ToString(); DontDestroyOnLoad(singleton); } } return _instance; } } } private static bool applicationIsQuitting = false; public void OnDestroy () { applicationIsQuitting = true; } } И можно уже обращаться к нему Очень удобная штука, и мне ее катастрофически нехватает в as3 теперь)
__________________
Ко мне можно и нужно обращаться на ты) |
|
|||||
Цитата:
__________________
while(live()) { hope(); } |
|
|||||
Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 479
|
В исходном коде не было (или я не заметил ). Я и спросил.
|
Часовой пояс GMT +4, время: 21:13. |
|
« Предыдущая тема | Следующая тема » |
|
|