Design patterns Data Access Object(DAO) design pattern