DAO应该总是返回单一数据类型吗?

时间:2017-01-24 23:02:38

标签: php dao

我们有一些像这样的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的一位数据...而不是整个对象。

是否更好:

  1. 让DAO只返回SamplePopo对象,并通过getter(来自控制器内)获取我需要的数据:

    class VoController  {
        $VoDAO = new SampleVoDAO();
        $myVO = VoDAO->getSampleVoById(3);
        $dataINeed = myVO->getOtherBitOfData();
    
        //do something with $dataINeed
    }
    
  2. 或者

    1. 让DAO直接返回我需要的数据:

      //in the SampleVoDAO class:
      getOtherBitOfDataFromVOByID($id)  {
          $vo = getSampleVoById($id);
      
          return $vo->getOtherBitOfData;
      }
      

0 个答案:

没有答案