반응형

object 2

[Android] Hilt @Binds와 @Provides 차이점. (abstract and object)

@Binds @Provides @Binds를 사용할 때 abstract으로 선언하는 이유 예상 @Provides를 사용할 때 object로 선언하는 이유 예상 @Binds constructor를 가질 수 없는 interface의 인스턴스를 제공해야 할 때 사용할 구현을 Hilt에 알려준다. 함수 반환 유형은 함수가 어떤 인터페이스의 인스턴스를 제공하는지 Hilt에 알려준다. 함수 매개변수는 제공할 구현을 Hilt에 알려준다. @Binds를 사용하기 위해서는 module을 abstract class로 bind 함수를 abstract function으로 만들어야 한다는 것에 주의하자. 또한, @Provides와 비교하여 @Binds로 생성된 Hilt 자동 생성 클래스 개수가 더 적다. 구현체에 반드시 @In..

[Koltin] Object Keyword. (싱글톤 패턴, 익명 함수)

경우에 따라 새 하위 클래스를 명시적으로 선언하지 않고 일부 클래스를 약간 수정한 개체를 만들어야 한다. 코틀린은 객체 표현식과 객체 선언으로 이를 처리할 수 있다. Object expressions 객체 표현식은 익명 클래스, 즉 클래스가 명시적으로 선언되지 않은 클래스의 객체를 만든다. 이러한 클래스는 일회용으로 사용하기 유용하다. 처음부터 정의하거나 기존 클래스에서 상속하거나 인터페이스를 구현할 수 있다. 익명 클래스의 인스턴스는 이름이 아닌 식에 의해 정의되므로 익명 객체라고도 한다. Creating anonymous objects from scratch 객체 표현식은 object 키워드를 사용한다. val helloWorld = object { val hello = "Hello" val worl..