Kotlin

코틀린 FAQ_week8

지 슈 2023. 1. 28. 12:34

invoke 메서드를 구현하는 인터페이스란?

자바에서 invoke 메서드를 구현하려면 코드를 일일이 다 써야 한다. 하지만 코틀린에서는 함수 타입이 invoke 메서드를 구현하는 인터페이스이기 때문에 굳이 코드를 적지 않아도 invoke 메서드를 구현할 수 있다.

전략 패턴이란?

→ 4-2기에 알 수 있다..

⇒ “어떤 행위를 처리할때 로직의 일부 전략을 캡슐화하여 이용하는 패턴”

• 로직이나 알고리즘 변경시 해당 코드를 직접 변경하지 않고 이미 정의된 알고리즘을 교체하여 사용할 수 있다.

ㄴ 객체가 할 수 있는 각각의 행위를 전략으로 만들고 행위를 수정해야 할 때 전략을 바꾸어 행위의 수정을 가능하도록 한다.

인라인 함수

<문제>: 람다의 경우 파라미터 개수에 따라 컴파일 단계에서 FunctioN 인터페이스로 변환된다. 이때 일반 함수에 비해 부가적인 비용이 발생하기 때문에 덜 효율적인 면이 있다.

→ 그래서 인라인 함수를 사용

“함수를 호출하는 코드를 함수 본문을 번역한 바이트 코드로 컴파일한다”

https://0391kjy.tistory.com/64

→ 이렇게 인라인된 코드는 함수의 내용 자체를 불러오기 때문에 굳이 FunctionN 객체를 만들지 않아도 오버헤드가 만들어지지 않고 함수의 본문을 그대로 가져올 수 있다.