2014-06-13 4 views
2

이 링크를 근거로 사용합니다. link as 주어진 예제는 그물에있는 다른 예제에서 시작하는 것이 가장 간단한 것 같습니다. 누군가 이유를 설명해 주시겠습니까?DAO 팩토리 패턴 예

  1. 구현 및 인터페이스 코드를 이해할 수 있습니다. 하지만 인터페이스를 반환하는 이유는 무엇입니까?

  2. 또한 문자열 비교가 "jdbc"인 동안 두 경우 모두 동일한 문을 반환합니다. 이것은 내가 혼란스러워하는 곳입니다. 그들은 같은 인터페이스의 다른 구현을 리턴해야하지 않습니까?

고마워요!

+0

로 반환 하나가 될 수 있습니다. –

+2

왜 이것을 다운 그레이드 했습니까? – chipmunk

답변

1
  1. 팩토리는 인터페이스를 반환하므로 다른 구현체를 사용하는 모듈과 인터페이스가 분리됩니다. UserDAOImpl가, 어떤 이유로, 에 UserDAOConcrete을 이름을 변경한다면 다른 모든하지 않았다 인터페이스를 (사용 때문에 예를 들어
    는, 당신은 단지, 공장 코드, 아무것도를 변경해야 변경)

  2. 사용자는 간단하게 문제를 해결하기 위해 동일한 구현을 다시 시도하고 질문 자체와는 관련이 없기 때문입니다. 코드는 샘플입니다. 실제로 factory 메소드에 전달 된 인수에 따라 다른 구현을 반환합니다. 이전 조건이 부합하지 않을 경우 마지막으로기본 구현이기 때문에 그가 수행했을 수도 있습니다. 디폴트의 ​​구현은 그가 이미 그들은, 그들이 UserDAO 인터페이스를 구현하고 구체적인 클래스 UserDAOImpl을 반환하는 인터페이스 UserDAO를 반환하지 않는 다른 인수

+0

감사! 이것은 분명히 그것을 정리했다. – chipmunk

+2

1. 더 중요한 것은 컨텍스트에 따라 다른 DAO 구현을 가질 수 있습니다. 예를 들어, 프로덕션 소프트웨어를 위해 Hibernate를 사용하여 구현 된 UserDaoJpa와 자동화 된 테스트 스위트를 위해 Mockito를 사용하여 구현 된 UserDaoMock을 가질 수 있습니다. –

+0

매우 중요한 이유 –