[토비의 스프링 3.1] 1.4 제어의 역전(IoC)
1.4.1 오브젝트 팩토리 지금까지 초난감 DAO를 리팩토링하였다. 그러나 UserDaoTest가 DAO의 클라이언트 오브젝트가 되면서, 어떤 ConnectionMaker 구현 클래스를 사용할지를 결정하는 기능을 떠맡게 되었다. UserDao의 기능이 잘 동작하는지 테스트하려고 만든 것인데 다른 책임을 떠맡고 있으니 문제가 있어보인다. 그러니 이것도 분리하자. 객체의 생성 방법을 결정하고, 그렇게 만들어진 오브젝트를 돌려주는 클래스를 만들어보자. 이런 일을 하는 오브젝트를 흔히 팩토리(Factory)라고 부른다. 오브젝트를 생성하는 쪽과 생성된 오브젝트를 사용하는 쪽을 분리하기 위해 사용한다. public class DaoFactory { public UserDao userDao() { Connectio..
2022.05.26