Здравствуйте, Darth Jurassic, Вы писали:
DJ>Согласен с код ревью. Если я правильно понял, на листинге изображен класс-обёртка. Что ожидают от обёртки: что сеттеры устанавливают значения свойств подлежащего объекта (в данном случае entity).
А если ты неправильно понял?
Если entity — это закэшированное значение из базы данных, уникальным идентификатором которого является entityName?
Они установили новый entityName, а сам entity куда должен показывать? Если его загружать через loadEntity(),
то это везде в коде, перед использованием класса надо будет писать loadEntity() просто так, на всякий случай.
Это сделает код громоздким, неудобным, и главное — всё равно не будет гарантии, что где-то не забудут сделать
loadEntity(). А если сделать
getEntity() { if (entity == null) entity = loadEntity(); return entity; }
то точно так-же, неожиданно для пользователя getter-а, он начнёт лазить в базу данных и
занимать непредсказуемое кол-во времени, выдавать непонятные exception-ы и т.п.
Короче, хрен редьки не слаще.