我们有一些像这样的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...
}
在某些情况下,我们的Controller类只需要来自Object的一位数据...而不是整个对象。
是否更好:
让DAO只返回SamplePopo对象,并通过getter(来自控制器内)获取我需要的数据:
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;
}