Спустя несколько лет, но хорошо: хотя ленивая инициализация хороша сама по себе, я бы определенно не откладывал парсинг xml и т. Д., Пока кто-то не получит доступ к title
объекта.Предполагается, что вычисляемые атрибуты ведут себя как простые атрибуты, а доступ к простым атрибутам никогда не повысится (при условии, что атрибут, конечно, существует).
FWIW У меня был очень похожий случай в каком-то проекте, который я взял на себя, с ошибками синтаксического анализа xml, возникающими в самых неожиданных местах, из-за того, что предыдущий разработчик использовал свойства точно так же, как в примере OP,чтобы исправить это, поместив часть анализа и проверки во время создания экземпляра.
Итак, используйте свойства для отложенной инициализации, только если и когда вы знаете, , первый доступ никогда не будет повышаться.На самом деле, никогда не используйте свойство для чего-либо, что может поднять (по крайней мере, при получении - установка в другой ситуации).Иначе, не используйте свойство, сделайте метод получения явным методом и четко документируйте, что оно может вызвать то или иное.
Примечание: использование свойства для кэширования чего-либо здесь не является проблемой, само по себе это нормально.