스칼라로 JDBC API 리팩토링하기 8

Toggle Space Navigation Tree
Space Map

이 문서는 스칼라로 JDBC API 리팩토링하기 로 이동했다. 앞으로 모든 문서 업데이트는 SLiPP Wiki에서 진행할 계획이다.

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. 11월 10, 2010

    자바지기 says:

    이전 스터디에 나온 이야기로 살짝 한가지 넣어보자면... def executeUpdate(query: String, pss: Prepar...

    이전 스터디에 나온 이야기로 살짝 한가지 넣어보자면...

     
    def executeUpdate(query: String, pss: PreparedStatement => Unit  ) { 
        val pstmt = conn.prepareStatement(query) 
        pss(pstmt) 
        pstmt.executeUpdate(); 
    } 
    

    위 함수에서 인자로 함수를 넘김으로서 조금 더 간결한 소스는 되었지만 의도가 조금 모호해지는 경향이 있습니다.
    PreparedStatement 를 인자로 받는 함수로 무얼하라는 것일까...라는 정도일까요;;
    추상 인터페이스인 PreparedStatementSetter 에는 Setter, setValues(...) 등을 통해서 의도를
    알수있지 않을까요?
    (물론 전 처음에 잘몰랐지만... 영어랑 친하지 않다보니... ;;; )

    type PreparedStatementValueSetter = (PreparedStatement => Unit) 
    def executeUpdate(query: String, psvs: PreparedStatementValueSetter ) { 
        val pstmt = conn.prepareStatement(query) 
        pss(pstmt) 
        pstmt.executeUpdate(); 
    } 
    

    위와 같이 이름으로 의도를 조금 더 명확하게 표현해주면 좋을거 같습니다.

    라 스칼라 코딩단의 박용권님으로부터의 의견이었습니다.