Здравствуйте, Dziman, Вы писали:
D>Для сеттера типа:
D>D>public void setEntityName(String entityName) {
D> this.entity = loadFromDBByName(entityName);
D> this.entityName = entityName;
D>}
D>
D>На код ревью было сделано замечание, что сеттер слишком сложный и надо переименовать метод в что-то типа loadEntityByName. На мой же взгляд это нормально, что сеттер что-то делает помимо чисто установки значения. Для того и задумывалось использование оберток надо членами класса, чтобы выполнять в них необходимую дополнительную работу. Или я что-то пропустил изучая ООП?
Согласен с код ревью. Если я правильно понял, на листинге изображен класс-обёртка. Что ожидают от обёртки: что сеттеры устанавливают значения свойств подлежащего объекта (в данном случае entity). То есть код типа
cover.EntityDescription = "The entity description goes here";
cover.EntityName = "Name";
должен бы по идее устанавливать два поля Description и Name, а что оно сделает на самом деле? Если нет возможности присвоить entity новое имя, то и не должно быть сеттера (геттер может), если реализуется загрузка, то лучше делать это методом LoadEntity(String name), если есть или предполагается несколько методов загрузки, и загрузка по имени — частный случай, то логично добавить ByName.
То есть получается, что по названию можно догадаться, что делает метод. Именно это требование скомпилировали в переименование сеттера в метод.
P.S. Код ревью проводил не я, но я бы предъявил ровно такое же требование.