1. Это похоже на некорректную реализацию обсервера и больше частный случай.
2. Я не вижу ничего хорошего в данном инициализаторе. Он обязывает второго разработчика знать о своем существовании. Если стояла цель lazy-loading, то ИМХО лучше было создать фасад/прокси который бы отвечал за подгрузку обьекта.
2. Я не вижу ничего хорошего в данном инициализаторе. Он обязывает второго разработчика знать о своем существовании. Если стояла цель lazy-loading, то ИМХО лучше было создать фасад/прокси который бы отвечал за подгрузку обьекта.
Использование геттеров необходимо в случае обеспечения обратной совместимости. Вот пример поддержки BC во второй Мадженте
2. В вашем примере метод вызывается на clone(), то есть в приниципе не влияет на создание обьекта.