Singleton

이하연·2021년 9월 16일
0

Boostcourse

목록 보기
17/20

Singleton

정의

싱글톤이란, 특정 클래스의 인스턴스가 오직 하나임을 보장하는 객체

즉, 특정 용도로 객체를 하나 생성해서 공용으로 사용하고 싶을 때 사용하는 방법입니다.

싱글톤을 통해 여러 화면이라던지, 여러 인스턴스끼리 데이터를 손쉽게 공유 가능

특징

  • iOS 애플리케이션 디자인 패턴 중 하나
  • 애플리케이션이 요청한 횟수와는 관계없이 이미 생성된 같은 인스턴스를 반환
  • 싱글톤 인스턴스를 반환하는 팩토리 메서드나 프로퍼티는 "shared" 를 사용
  • 애플리케이션 내의 특정 캘래스의 인스턴스가 하나만 존재하기에 객체가 불필요하게 여러 개 만들어질 필요가 없는 경우에 많이 사용
    • 예 : 환경설정, 네트워크 연결처리, 데이터 관리 등
  • But 멀티 스레드 환경에서 동시에 싱글톤 객체를 참조할 경우 원치 않은 결과 초래

Cocoa 프레임워크에서의 싱글톤 디자인 패턴

  • FileManager

    애플리케이션 파일 시스템을 관리하는 클래스

    FileManager.default

  • URLSession

    URL 세션을 관리하는 클래스

    URLSession.shared

  • NotificationCenter

    등록된 알림의 정보를 사용할 수 있게 해주는 클래스

    NotificationCenter.default

  • UserDefaults

    Key-Value 형태로 간단한 데이터를 저장하고 관리할 수 있는 인터페이스를 제공하는 데이터베이스 클래스

    UserDefaults.standard

  • UIApplication

    iOS에서 실행되는 중앙제어 애플리케이션 객체

    UIApplication.shared


실습

Command + N → swift 파일 생성

클래스 하나 생성한 후 shared라는 이름으로 타입 프로퍼티 하나 생성

0개의 댓글