У нас есть несколько POPO (простых старых объектов PHP) / VO, таких как:
class SampleVO {
private $id;
private $name;
private $otherBitOfData;
//constructor
//getters and setters
}
У нас также есть DAO для извлечения этих объектов из базы данных:
class SampleVoDAO {
getSampleVoById($id) {
//returns the SamplePopo object fetched by ID.
}
getSampleVoByName($id) {
//returns the SamplePopo object fetched by Name.
}
//etc...
}
В некоторых случаях нашему классу контроллеров требуется только один бит данных от объекта, а не весь объект.
Это лучше:
Пусть DAO вернет только объекты SamplePopo и получит нужные мне данные через геттер (из контроллера):
class VoController {
$VoDAO = new SampleVoDAO();
$myVO = VoDAO->getSampleVoById(3);
$dataINeed = myVO->getOtherBitOfData();
//do something with $dataINeed
}
Или же
Пусть DAO вернет нужные мне данные напрямую:
//in the SampleVoDAO class:
getOtherBitOfDataFromVOByID($id) {
$vo = getSampleVoById($id);
return $vo->getOtherBitOfData;
}
Задача ещё не решена.
Других решений пока нет …