DAO-DVO 디자인을 구현하는 두 가지 방법을 보았습니다.Java EE-DAO DVO
1) DVO 객체와 DAO를이 공장의 DAO를 즉 사용하여 인스턴스화있는 것이 있습니다 또한 2) DVOs 다시있는 객체하지만이 경우, DAO를이 작업을 수행 할 수 DVOs을 받아 정적 메소드를 포함하는 클래스는 객체.
어느 쪽이 더 좋고 확장 성이 좋을지 궁금합니다.
DAO-DVO 디자인을 구현하는 두 가지 방법을 보았습니다.Java EE-DAO DVO
1) DVO 객체와 DAO를이 공장의 DAO를 즉 사용하여 인스턴스화있는 것이 있습니다 또한 2) DVOs 다시있는 객체하지만이 경우, DAO를이 작업을 수행 할 수 DVOs을 받아 정적 메소드를 포함하는 클래스는 객체.
어느 쪽이 더 좋고 확장 성이 좋을지 궁금합니다.
물리적으로 실제로 계층화되지 않은 한 많은 레이어를 사용하지 말 것을 강력히 권장합니다. 예를 들어 GUI를 업데이트하기 위해 분리 된 객체를 보낼 필요가있는 리치 클라이언트 (rich client) 같은 것이 있다면 그렇지 않으면 통증의 세계입니다.
스프링 프레임 워크를 사용해보십시오. DAO는 Dependency Injection을 통해 초기화되며 일반 Java 객체입니다.
그런 다음 DAO의 메소드는 응용 프로그램의 모든 계층에서 사용되는 도메인 객체 만 사용해야합니다.
DAO Factory를 다운로드하여 데이터베이스 연결을 만드는 방법은 무엇입니까?
테스트 가능성과 관련하여 나는 두 번째 접근법에 반대 할 것을 권합니다. 정적 메소드는 모의 객체 등으로 공동 작업자를 오버라이드하여 클래스의 동작을 조정할 수 없도록합니다. Miško Hevery가 말하듯이 : "Static Methods are Death to Testability".