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
  1. 단 하나의 클래스에 단 하나의 인스턴스만 접근할 수 있게 해주는 것, 생성자를 private init()을 생성해야 하는 것
  2. 하나의 인스턴스를 사용하기 때문에, 메모리 낭비를 방지할 수 있다.
  3. 너무 많은 일을 하거나 많은 데이터를 공유시킬 경우 다른 클래스의 인스턴스들 간에 결합도가 높아져서 “개방-폐쇄 원칙”을 위배하게 된다. (멀티 쓰레드 환경에서 동기화처리를 안하면 인스턴스가 두 개가 생성된다는지 하는 경우가 발생할 수 있다.)
LeeJoobang commented 1 year ago
  1. 특정 용도로 객체를 하나만 생성해 공용으로 사용하고 싶을 때 사용하는 디자인 패턴이다.
  2. 클래스에 대한 인스턴스는 최초 생성될 때 딱 한번 생성해 전역에 두고, 그 이후 인스턴스만 접근할 수 있도록 한다.
  3. 장점: 인스턴스를 한번만 생성하므로, 메모리 낭비를 방지할 수 있으며, 전역인스턴스로 다른 클래스와 공유하기 쉽다.
  4. 단점: 싱글톤 인스턴스가 너무 많은 일을 하거나, 데이터를 공유하므로 다른 클래스의 인스턴스간의 결합도가 높아져서 개방, 폐쇄 원칙을 위배한다. 이로 인해 다른 클래스와의 간섭이 높아져 수정과 테스트가 어려워진다.
Glsme commented 1 year ago

메모리상에 유일하게 1개만 존재하는 객체 설계이다.