NOTE: You should always try to separate the interface from the implementation. This will give you more control over other layers using this DAO layer.
But, as you know, the interface gives you more abstraction and makes the code more flexible and resistant to changes, since you can use different implementations of the same interface without changing its client. However, if you do not think your code will change, or (especially), if you think that your abstraction is good enough, you do not have to use interfaces
In other words: interfaces are good, but before creating an interface for each class, think about it
source share