UserDao 클래스를 인터페이스와 구현으로 분리해보자.

인터페이스와 구현 클래스의 이름을 정하는 방법

  1. 인터페이스를 구분하기 위해 인터페이스 이름 앞에 ‘I’ 접두어 붙이기
  2. 인터페이스 이름은 가장 단순하게, 구현 클래스는 특징을 따르는 이름 붙이기

2번을 적용해보자.

파일 이름 정하기

인터페이스 적용

UserDao 인터페이스

public interface UserDao {

  void add(User user);
  User get(String id);
  List<User> getAll();
  void deleteAll();
  int getCount();
}

<aside> 🔑

setDataSource() 메서드는 인터페이스에 추가하면 안된다.

</aside>

public class UserDaoJdbc implements UserDao{ ... }

→ userDao 이름으로 빈 등록

: 구현 인터페이스 이름을 따르는 경우가 일반적이다.