0

DAO 패턴의 전송 객체에 대한 질문이 있습니다. USER 테이블이 있고이 테이블에 20 개의 필드가 있다고합시다. 비즈니스 논리에서 필자는 일부 시나리오에서는 필드 1에 필드 1이 필요하고 다른 시나리오에서는 필드 4 - 필드 6 필드가 필요할 수도 있음을 알았습니다. 따라서 userTO 클래스를 구현할 때 필드 1 - 6 만 정의해야합니다. 그렇지 않으면 20 개의 필드를 모두 정의해야합니다. 또 다른 한가지는 내가 20 개 필드를 모두 정의한다면 UserDAOImpl 클래스의 SQL은 userTO 객체를 초기화하기 위해 항상 20 개 필드를 모두 가져와야한다는 것입니다.전송 개체는 항상 전체 DB 행 항목을 반영해야합니까?

모든 의견을 크게 환영합니다. 감사! 당신의 userTO 클래스를 가정하면 높은 응집력이다

답변

0

...

당신은 항상이 유효한 상태로 생성되는 것을 보장 할 객체의 인스턴스를 생성

. 즉, 주어진 객체의 인스턴스를 가져 와서 프로그래밍 오류 유형 예외 (예 : NullPointerException)를받지 않고 프로그램의 어느 위치로든 메소드에 전달할 수 있습니다. 이것은 모든 20 개의 필드가있는 userTO를 항상 만들어야한다는 결론을 이끌어 낼 것입니다.

그러나 우리는 조건 내에서 살며 일합니다. userTO의 각 인스턴스에 채워지는 20 개의 필드가 모두 필요하다면 시스템에 불필요하고 불리한 부담을 초래할 수 있습니다. 자주 사용되는 userTO 필드의 하위 집합을 포함하는 userTOShort를 만드는 것이 좋습니다. 그런 다음 필요할 때 매우 드물게 필요한 "선택적 추가"필드를 채울 수 있습니다. 이 "짧은"해결책은 다소 더러워졌지만 깨끗한 해결책을 모릅니다.

관련 문제