主要区别是:Repository是将领域模型对象分解为DB。这是严格定义。而DAO没有用法上定义,你也可能以DB为主,将DB转为DTO等对象,对象是服从于数据库的。所以,两者区别就是设计思路的区别,以谁为主的问题。