생성자 3

[Kotlin] 자바 함수형(SAM) 인터페이스 활용

kotlin in Action 을 공부하고 Effective kotlin 의 내용을 조금 참조하여 정리한 글입니다. 코틀린으로 개발을 할 때 대다수의 API 는 코틀린이 아닌 자바로 작성된 API 일 것이다. 그런데 코틀린 람다를 자바 API 에 사용해도 아무 문제가 없다. 코틀린에서는 자바 메서드에 람다를 넘길 수 있다. 안드로이드 개발시 많이 사용하는 `Button` 클래스는 `setOnClickListener` 메서드를 사용하여 버튼의 리스너를 설정한다. public class Button { public void setOnClickListener(OnClickListener l) { ... } } 여기서 `OnClickListener` 인터페이스는 `onClick` 이라는 메서드만 선언된 인터페이..

Kotlin 2024.01.16

[Kotlin] 주 생성자 & 부 생성자 & 초기화 블록

Kotlin in Action 을 공부하고 Effective kotlin 의 내용을 조금 참조하여 정리한 글입니다. 자바에서는 생성자를 하나 이상 선언할 수 있다.코틀린에서도 비슷하지만 바뀐 점들이 있다. 코틀린에서는 primary constructor(주 생성자), secondary constructor(부 생성자)를 구분하며, initializer block(초기화 블록)을 통해 초기화 로직을 추가할 수 있다. 주 생성자 & 초기화 블록 코틀린에서 가장 일반적으로 사용하는 주 생성자 초기화를 보이기 전에, 가장 복잡한 형태로 초기화하는 방식부터 보자. 프로퍼티 `nickname` 을 가지고 있는 `User` 클래스 class User constructor(_nickname: String) { val ..

Kotlin 2024.01.06

의존성 관리 - 코드로 이해하는 객체지향

잘 설계된 객체지향 App. 은 작고 응집도 높은 객체들로 구성됩니다. 책임이 명확하고 한 가지 일을 잘하는 객체이지요. 이 객체들이 협력을 하는 것입니다. 협력은 하면 필연적으로 의존성이 발생합니다. 너무 과한 협력은 과한 의존성을 발생시키므로 결국 '적당히' 가 중요합니다. 충분히 협력적이면서도 유연한 객체르 만들기 위한 의존성 관리에 대한 글입니다. 의존성 변경과 의존성 의존성은 의존하고 있는 대상의 변경에 영향을 받을 수 있는 가능성입니다. 실행 시점 의존성: 의존하는 객체가 정상적으로 동작하기 위해서는 실행 시에 의존 대상 객체가 반드시 존재해야 함. 구현 시점 의존성: 의존 대상 객체가 변경될 경우 의존하는 객체도 함께 변경됨. 위 글만 읽으면 무슨 소리인지 잘 이해가 안되는데, 코드를 통해서..