可以的,Java 中的 DAO(Data Access Object)完全可以不使用接口,是否使用接口主要取决于设计需求、项目规模和团队规范,而不是语法强制要求。
下面从几个角度说明:
public class UserDao {
public User findById(Long id) {
// JDBC / MyBatis / JPA 代码
return null;
}
public void save(User user) {
// 保存逻辑
}
}
调用:
UserDao userDao = new UserDao();
userDao.findById(1L);
✅ 这是完全正常的 Java 写法
✅ 在小项目、工具类、简单 CRUD 中很常见
public interface UserDao {
User findById(Long id);
}
public class UserDaoImpl implements UserDao {
// 实现
}
好处:
UserDao 接口,而不是具体实现Spring + MyBatis(早期):
@Mapper
public interface UserDao {
User findById(Long id);
}
MyBatis 自动生成实现类
Spring 事务 / AOP: 接口更容易做代理(JDK 动态代理)
UserDao mockDao = mock(UserDao.class);
接口比类更容易 Mock
✅ 以下情况推荐不用接口:
JpaRepository 已封装)BaseMapper)✅ 现代趋势:
XXXDao + XXXDaoImplDAO 可以不用接口,Java 语法完全支持。
是否使用接口取决于:
如果你愿意,可以告诉我:
我可以给你最合适的 DAO 写法示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。