728x90
- SAM: Single-Abstract Method
- 인터페이스의 단점:
- 불필요한 복잡성: 인터페이스를 정의하고 이를 구현하는 클래스가 필요합니다.
- 코드 가독성 저하: 인터페이스와 이를 구현하는 클래스를 찾기 위해 코드 베이스를 여기저기 탐색해야 합니다.
- 함수 타입의 장점:
- 간결함: 함수 타입을 사용하면 코드가 더 간결하고 직관적입니다.
- 가독성 향상: 람다 표현식을 사용하여 코드를 읽기 쉽고 유지보수하기 쉽게 만들 수 있습니다.
- 유연성: 함수 타입을 사용하면 필요에 따라 더 유연하게 코드를 작성할 수 있습니다.
예시:
- 인터페이스를 사용한 코드:
interface ButtonClickListener {
fun onClick()
}
class MyButton : ButtonClickListener {
override fun onClick() {
// Do something
}
}
- 함수 타입을 사용한 코드:
class MyButton(val onClick: () -> Unit)
val button = MyButton {
println("버튼이 눌렸습니다.")
}
// 버튼을 누를 때
button.click()
코틀린이 아닌 다른 언어에서 사용할 클래스를 설계할 때에는 (ex:자바)SAM 을 사용하는 것이 더 좋다.
728x90
'공부 > 이펙티브코틀린' 카테고리의 다른 글
아이템 40 - equals 의 규약을 지켜라 (0) | 2024.08.01 |
---|---|
아이템39 - 태그 클래스보다는 클래스 계층을 사용하라 (0) | 2024.08.01 |
아이템 37 - 데이터 집합 표현에 data 한정자를 사용하라 (1) | 2024.07.14 |
아이템 36 - 상속보다는 컴포지션을 사용하라 (0) | 2024.07.14 |
아이템35 - 복잡한 객체를 생성하기 위한 DSL을 정의하라 (0) | 2024.07.11 |
댓글