Страницы

Поиск по вопросам

понедельник, 25 февраля 2019 г.

Как назвать такой фрагмент кода?

private IMyType myProperty;
public IMyType MyProperty { get { if(myProperty==null) { myProperty = AppKernel.Get(); } return myProperty; } }
Как называется эта техника (создание экземпляра объекта в случае, если ссылка на объект пустая)? Является ли это каким-то паттерном? Во многих примерах вижу такой подход. Интересно, имеет ли он какое-то название?


Ответ

Это называется ленивая инициализация. Как правило такой подход используется, когда объект слишком громоздкий, и инициализировать все его поля сразу - отнимет время. С таким подходом поля будут инициализироваться во время первого обращения к ним. Это применяется в работе с базами данных, в частности, в ORM, например. Без крайней необходимости делать ленивую инициализацию не стоит.

Комментариев нет:

Отправить комментарий