Интересно, как это еще согласуется с инициализацией по требованию. Вопрос поднимается в связи с .NET, где:
private static object _instance = new object();
public static object Instance
{
get { return _instance; }
}
— так же представляет собой своего рода вариант отложенной инициализации, т.к. экземпляр будет создан во время джит-компиляции по факту _наличия_ обращения. Т.е. если это библиотечный код, то может быть что при работе с библиотекой экземпляр Instance создан вообще не будет, если в клиентском коде к нему обращения нет. Это lazy initialization или нет? И как согласуется с таким:
private static object _instance;
public static object Instance
{
get {
if (_instance == null)
_instance = new object();
return _instance;
}
}
А если объект будет создаваться по пользовательскому вводу? Тоже Lazy Init? Вообщем, одно другому не мешает в разделено на уровни, тоесть, для JIT все сущности Lazy Init, для программы — только те, которые отпределены логикой, для пользовательского ввода — только те, с которыми пользователь захочет работать.
"mikа" <5481@news.rsdn.ru> wrote in message news:709351@news.rsdn.ru... > Здравствуйте, Воронков Василий, Вы писали: > > А если объект будет создаваться по пользовательскому вводу? Тоже Lazy Init? Вообщем, одно другому не мешает в разделено на уровни, тоесть, для JIT все сущности Lazy Init, для программы — только те, которые отпределены логикой, для пользовательского ввода — только те, с которыми пользователь захочет работать.
Вопрос возник по причине того, что непонятно как трактовать следующий вопрос по диезу:
Что есть неправда касательно свойств?
— свойства не поддерживают lazy initialization,
— свойства нельзя передавать в качестве параметра метода
Здравствуйте, Воронков Василий, Вы писали:
ВВ>Что есть неправда касательно свойств? ВВ>- свойства не поддерживают lazy initialization, ВВ>- свойства нельзя передавать в качестве параметра метода
Если свойство — PropertyInfo, тоесть реальный объект, то первое неверно, второе верно.
Если свойство — абстрактная характериитка объекта, и так как Lazy Initialization тоже характеристика объекта, то первое верно, второе нет.
"mikа" <5481@news.rsdn.ru> wrote in message news:709641@news.rsdn.ru...
> Если свойство — PropertyInfo, тоесть реальный объект, то первое неверно, второе верно. > Если свойство — абстрактная характериитка объекта, и так как Lazy Initialization тоже характеристика объекта, то первое верно, второе нет.