2011-12-07 1 views
1

메모리에 저장할 수없는 큰 ResultSet을 생성하는 JDBC 쿼리가 있습니다. 각 결과에는 다음과 같은 복잡한 논리가 적용되어야합니다. 그 결과 집합에 루프 안에 모든 것을 넣고 싶지는 않습니다. JDBC 쿼리를 사용하는 클래스를 Observable으로 만들어 관찰자 패턴을 사용하는 것이 좋습니다? 아니면 그 수업을 Iterator으로해야합니까?ResultSet과 함께 Observer 패턴을 이벤트 소스로 사용하는 것이 좋습니까?

답변

4

디자인이 무엇이든 관계없이 ResultSet을 반복해야합니다.

while (rs.next()) { 
    SomeObject o = extractDataFromResultSet(rs); 
    process(o); 
} 

프로세스 방법이 원하는 것을 할 자유입니다 : 당신은 그냥 필요 overengineer 않는다이 같은 것입니다, 일을 협력 객체를 호출 등

+0

글쎄, 이것은 easist입니다 그런데 SRP에 반대하지 않습니까? – chance

+0

프로세스가 someObjectProcessor.process (o)를 호출하는 것으로 구성되어 있으면 no입니다. someObjectProcessor 객체를 메서드 또는 생성자에 전달하기 만하면됩니다. –

+0

@chance : 그것은'SomeObject'로 무엇을 할 것인가에 달려 있습니다. 'process (SomeObject)'메소드를 다른 객체로 옮길 수도 있습니다. – Crozin