I agree that we should put CRUD methods in a data access layer， However, in my current project I have some issues.
It is a legacy system, and there are quite a lot CRUD methods in some concrete manager classes.
People including me seem to just add new methods to it, rather than reuse the existing methods.
- We don't know whether the existing method is what we need
- Even if we have source code, do we really need read other's code then make decision?
- It is updated too quickly. Do not have time get familiar with the DAO API.
Back to the question, how do you solve that in your project? If we say "reuse", it really needs to be reusable rather than just an excuse.