I’m creating a new web application which will use a bunch of Data Access Object(DAO) classes for doing CRUD operations on the data. I know I should write java interfaces when I have external users/applications using my DAO classes. But if there is no such need do you think I should still write the interfaces? I’ll be injecting DAO classes in to the Spring Controller(I’m using Spring MVC) classes using spring.
Share
NOTE THAT : You should always try to separating the Interface from the Implementation. This will give you more control to the other layers, using this DAO layer.
But, As you know an interface gives you more abstraction, and makes the code
more flexible and resilient to changes, because you can use different
implementations of the same interface without changing its client.
Still, if you don’t think your code will change, or (specially) if you
think your abstraction is good enough, you don’t necessarily have to use interfaces
In other words: interfaces are good, but before making an interface for
every class think about it