
326
자바에서 코틀린으로
이 코드의 모양은 객체 지향 코드와 같다(감춰진
invoke
를
send
로 바꾸기면 된다).
fun sendThanks() {
sender.send(
Email(
to = parse(“support@internationalrescue.org”),
from = parse(“support@travelator.com”),
subject = “Thanks for your help”,
body = “...”
)
)
}
아주 드물겠지만, 자바스크립트나 클로저를 사용하다 이 책을 집어 들었다면 함수형 형태가 더
익숙할 것이다. 하지만 자바에서 코틀린에 입문한 독자라면 이런 해법이 꽤 낯설어 보일 것이다.
16.3
자바의 함수 타입
객체 지향과 함수형 형태 모두 원하는 것을 그들이 알려진 장소로부터 그들을 사용하는 장소
로 전달할 수 있도록 캡슐화할 수 있게 해 준다 (방금 본 예제의 경우 설정 정보였지만, 서로 협
력하기 위해 필요한 존재는 무엇이든 비슷하게 잘 캡슐화할 수 있다 ). 어떤 데이터 구조든 이
런 일을 할 수 있지만, 객체와 함수는 실행될 수 있는 연산을 제공하기 때문에(순서대로
send
,
invoke
), 클라이언트가 설정 상세 정보를 인식하지 않고 객체나 함수를 실행할 때마다 구체적
인 최소한의 정보(
Email
)만