-
[Android]Dagger Singleton과 Reusable 차이프로그래밍/Android 2022. 4. 24. 12:41
Singleton Annotation의 경우 객체를 무조건 하나만 생성하는데 반해 Reusable Annotation은 객체가 재사용할 수 있는 경우 해당 객체를 재사용하고 그렇지 못할 경우 새로 생성함. 조금더 유연하다고 생각하면 될듯
@Test fun testObjectIdentity() { println("testObjectIdentity start") println("singleton으로 객체를 생성함\nReusable 이용하면 재사용 가능하면 재사용하고 아닐 경우 새로 생성함") val myComponent: MyComponent = DaggerMyComponent.create() val temp1 = myComponent.`object` val temp2 = myComponent.`object` println(temp1.hashCode()) println(temp2.hashCode()) // 각 객체의 주소값을 이용하여 해쉬코드를 반환함 객체가 같은지 다른지 판별 가능 println(temp1 === temp2) Assert.assertEquals(temp1, temp2) println("testObjectIdentity end") }
실행 결과 : 객체의 해쉬코드가 같으므로 object가 한 개만 instance화 되었다.
testObjectIdentity start 475603167 475603167 true testObjectIdentity end
'프로그래밍 > Android' 카테고리의 다른 글
[Android] Dagger (Module, Provides, Component, Inject) 간단 용어 설명 (0) 2022.04.25 [Android] Dagger2 Multi binding 멀티바인딩(Set, Map) (0) 2022.04.24 [Android] Dagger Binding의 종류 (0) 2022.04.24 [Android] Dagger2 Component Generate 되지 않을 때 with Kotlin (0) 2022.04.24 [Android] SOLID 설계 원칙 (0) 2022.04.19