以我个人对DDD理解,Reposirtory提供对象管理, 管理对象可以通过DAO写入数据库或读取数据库组装对象,或者放入缓存等,这些业务层都不需要知道,业务层只对Reposirtory要求对象管理。

DAO就是数据库访问层,提供数据库CRUD操作。被包含在Reposirtory之内。

如果业务层直接调用DAO层,那么系统设计应该趋向数据库设计。

简单来说,个人觉得Repository 是放在BLL的,作为BL访问存取的地方。
而DAO可看成DAL提供BLL的接口,是放在DAL的
至于DAO是不是取消,就看DAL的设计了
业务是只管从仓库(Repository)中取出他所需要的对象,而不关心是从哪里存取,这些是Repository 的事情,Repository 可能通过DAO将数据完成持久化

同意,repository是domain概念,dao是program概念。主要是看问题的角度和层次不同。