[ 싱글톤 객체 ]
- 애플리케이션 전역에서 하나의 인스턴스만 생성되는 객체를 말하며 클래스의 인스턴스를 여러 번 생성하지 않고 한 번만 생성하여 공유함으로써 자원의 낭비를 줄이고 일관된 상태를 유지할 수 있도록 한다.
- Kotlin에서 싱글톤 객체는 'object' 키워드를 사용하여 정의되며 클래스 선언과 객체의 생성을 동시에 수행하며 싱글톤 객체는 클래스 내부의 프로퍼티 및 메서드를 정의할 수 있다.
object ShoppingCart {
private val items = mutableListOf<MenuItem>()
private var userMoney = 0 // 사용자 잔액
fun initMoney(money: Int) {
userMoney = money
}
fun addItem(item: MenuItem) {
// 아이템 추가 로직
}
fun displayItems() {
// 장바구니 표시 로직
}
fun doOrder() {
// 주문 처리 로직
}
}
ㄴ> 위 코드는 키오스크 프로그램을 설계하는 과제를 수행하면서 사용한 ShoppingCart(장바구니) 객체이다. 장바구니에 담긴 상품이 누적되지 않고 하나로만 초기화 되는 현상 때문에 사용하게 되었다.
싱글톤 객체로 생성된 ShoppingCart 애플리케이션 어디에서나 ShoppingCart 로 접근이 가능하며 장바구니에 아이템을 추가하고 주문을 처리할 수 있다.
[ 싱글톤 객체가 유용하게 사용되는 상황 ]
- 공유 리소스에 대한 중앙 집중적인 접근 : 여러 곳에서 공유되는 리소스에 대한 중앙 집중적인 접근 제공 시 유용
- 유일한 자원 접근 : 자원을 전역적으로 사용해야 하지만 인스턴스화된 객체가 여러 개 존재하지 않아야 할 때 유용
- 인스턴스 생성 비용이 높은 경우 : 인스턴스 생성 비용이 높거나 인스턴스를 여러 번 생성할 필요가 없는 경우에 유용
'Kotlin 문법 및 연습 문제' 카테고리의 다른 글
Kotlin - 문자열 내 마음대로 정렬하기 (1) | 2024.03.21 |
---|---|
(Kotlin) - 이상한 문자 만들기 (0) | 2024.03.15 |
Kotlin - 비동기 프로그래밍 (쓰레드, 코루틴) (2) | 2024.03.12 |
(Kotlin) 나누어 떨어지는 숫자 (0) | 2024.03.07 |
(Kotlin) 정수 제곱근 판별 (0) | 2024.03.05 |