title: Creating Service layer and DAO layer (interface+implementation) or implementation only
body: <p>I am confused about the <strong>structure</strong> of creating <strong>service</strong> layer and <strong>DAO</strong> layer:
  in some examples I see some people creating <strong>interface+implementation</strong> for both service and DAO and in other examples I see people creating <strong>implementation only</strong> specially when the DAOs extends an <strong>AbstractDao</strong> class that contains <strong>generic methods</strong> for those DAOs, so I am confused about what to go for, why to go for this solution or the other one, and what is the best practise (commonly used) please advise.</p>