Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- IF
- android studio
- string
- flutter
- BufferedReader
- 안드로이드
- error
- 반복문
- Kotlin
- 코딩테스트
- 프로그래머스
- 별찍기
- array
- dart
- CLASS
- Java
- For
- androidstudio
- BufferedWriter
- App
- 앱개발
- Android
- Return
- for문
- 백준
- 다트
- While
- 코틀린
- dataclass
- Scanner
Archives
- Today
- Total
amid.jungs
[안드로이드 / Kotlin ] Singleton Pattern 본문
Ⅰ. 개념
싱글톤 패턴 : 객체의 인스턴스 1개를 생성하여 재사용하는 패턴
Ⅱ. 특징
• 애플리케이션 시작 ~ 종료까지 한 번 생성으로 고정된 메모리 영역을 가져 메모리를 효율적으로 사용 가능
• 전역 인스턴스이므로 다른 클래스의 인스턴스가 데이터를 공유 및 변경이 가능함
• 객체를 여러개 생성해서 사용할 때 사용
Ⅲ. 예제
• object 키워드 사용
object SingletonEx {
fun printName (name : String) {
Log.d("singleton log" , "name : $name")
}
• companion object 사용
class SingletonEx() private constructor() {
companion object {
private var instance: SingletomEx? = null
private lateinit var context : Context
fun getInstance(_context : Context) : SingletonEx {
return instance ?: synchronized(this) {
instance ?: SingletonEx().also {
context = _context
instance = it
}
}
}
}
fun printName (name : String) {
Log.d("SingletonEx" , "sing : $sing")
}
}
• 사용
private fin textSingleton() {
SingletonEx.printName("Hi")
val singleton1 = SingletonEx.getInstance(this)
val singleton2 = SingletonEx.getInstance(this)
singletonEx1.printName("Hi")
SingletonEx.getInstance(this).printName("안녕")
}
'Android' 카테고리의 다른 글
Android Studio m1 빌드에러 : kaptDebugkotlin (0) | 2022.04.12 |
---|---|
Firebase Authentication 연결시 ID error (0) | 2022.01.17 |
DataBinding을 Layout 연결해서 사용하기 (0) | 2021.10.15 |
Firebase 연결 시 SHA1 찾기 (0) | 2021.08.12 |
Android & Kotlin 09 : check box + lazy , progress (0) | 2021.08.01 |
Comments