issues
search
NOW-ON
/
iOS-Interview-Preparation
iOS 면접 준비
3
stars
0
forks
source link
Singleton Pattern
#2
Closed
heydoy
closed
1 year ago
heydoy
commented
1 year ago
단 하나의 클래스에 단 하나의 인스턴스만 접근할 수 있게 해주는 것, 생성자를 private init()을 생성해야 하는 것
하나의 인스턴스를 사용하기 때문에, 메모리 낭비를 방지할 수 있다.
너무 많은 일을 하거나 많은 데이터를 공유시킬 경우 다른 클래스의 인스턴스들 간에 결합도가 높아져서 “개방-폐쇄 원칙”을 위배하게 된다. (멀티 쓰레드 환경에서 동기화처리를 안하면 인스턴스가 두 개가 생성된다는지 하는 경우가 발생할 수 있다.)
LeeJoobang
commented
1 year ago
특정 용도로 객체를 하나만 생성해 공용으로 사용하고 싶을 때 사용하는 디자인 패턴이다.
클래스에 대한 인스턴스는 최초 생성될 때 딱 한번 생성해 전역에 두고, 그 이후 인스턴스만 접근할 수 있도록 한다.
장점: 인스턴스를 한번만 생성하므로, 메모리 낭비를 방지할 수 있으며, 전역인스턴스로 다른 클래스와 공유하기 쉽다.
단점: 싱글톤 인스턴스가 너무 많은 일을 하거나, 데이터를 공유하므로 다른 클래스의 인스턴스간의 결합도가 높아져서 개방, 폐쇄 원칙을 위배한다. 이로 인해 다른 클래스와의 간섭이 높아져 수정과 테스트가 어려워진다.
Glsme
commented
1 year ago
메모리상에 유일하게 1개만 존재하는 객체 설계이다.
장점: 인스턴스를 한개만 생성하여 메모리 측면에서 낭비를 방지할 수 있다.
단점: 너무 많은 일을 하거나 많은 데이터를 공유시킬 경우 다른 클래스간의 결합도가 높아져 SOLID 원칙 중 개방-폐쇄 원칙을 위배하게 된다.