search

Home  >  Q&A  >  body text

php - getByName()这种类型的方法应该属于DAO层还是BO层?

设计代码的时候往往会将代码分层,达到更强的健壮性和可维护性

大概分为

controller 层,与前端模板对应的层
businesses object (BO)层,业务层
value object (VO)层,数据对象层(往往BO层和DAO层之间的数据传递使用VO来传递,BO与BO之间也使用VO传递)
data access object (DAO)层,基础的数据增删改查的方法
database 层,数据库层

等等

如上所述,DAO层设计为数据的基础的增删改查的方法,常见的往往都是按照唯一ID(uuid)来查询、修改的操作,
但也会出现按其他的唯一字段做查询、修改的操作的需求,常见的比如getByName(),deleteByName等
而不同的数据源的唯一字段又不一样,在其他的数据源中,函数往往又叫getBySpecialId(),deleteBySpecialID()等

所以我有一个疑问, 类似于getByName()、deleteByName()这种数据基础的数据操作,而又有一点点业务的含义等方法应该数据DAO层呢?还是BO层呢?

还望有大神赐教,谢谢。

注:绝大部分情况下的DAO类都是统一的一个类,只有BO的类往往会针对不同的数据做不同的业务处理

PHPzPHPz2791 days ago631

reply all(5)I'll reply

  • ringa_lee

    ringa_lee2017-04-11 09:12:46

    操作了数据库应该在dao层

    reply
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-11 09:12:46

    数据基础操作的话,写在dao层吧,就是最简单的获取和删除数据。然后在其他层可以在此基础上加上其他的业务逻辑。

    reply
    0
  • 巴扎黑

    巴扎黑2017-04-11 09:12:46

    DAL(数据访问层)

    reply
    0
  • ringa_lee

    ringa_lee2017-04-11 09:12:46

    这种方法在JPA里面很常见,一般应该放在dao层

    reply
    0
  • PHP中文网

    PHP中文网2017-04-11 09:12:46

    DAO层用于封装数据库的操作。所以应该是dao层

    reply
    0
  • Cancelreply