singleton

Singleton Pattern

Singleton Pattern(싱글톤 패턴)은 인스턴스화할 때, 단 하나의 인스턴스(오브젝트)만을 유지하도록 강제하는 패턴입니다.

싱글톤 패턴은 새로운 인스턴스를 생성할 때 이미 인스턴스가 존재한다면, 존재하는 인스턴스를 반환하고 존재하지 않으면

새로운 인스턴스를 만들어서 반환하는 방식으로 동작합니다.

싱글톤은 언제 유용할까요?

예를 들어 로그를 남기는 기능을 가진 클래스의 경우,

여러 클래스의 인터페이스에서 접근할 필요가 있지만 실제 로그를 남기는 인스턴스는 하나만 있으면 되는 경우가 있습니다.

이렇듯이 하나의 인스턴스만 유지해야 할 때 싱글톤을 사용할 수 있습니다.

코드로 보겠습니다.

 

init() 은 인스턴스를 생성하는 기능을 합니다.

그리고 getInstace() 에서 현재 instance를 확인하여 인스턴스가 생성되어있지 않을 경우에,

새로운 인스턴스를 생성하고 반환합니다. 인스턴스가 이미 생성되어있다면 기존의 인스턴스를 반환합니다.

 

 

사용하면 편리한 싱글톤이지만 장점만 있는 것은 아닙니다.

싱글톤의 대표적인 단점으로는

  • 여러 클래스에서 접근하기 때문에, 결합도가 올라간다.
  • 한번 생성되면 애플리케이션 종료까지 메모리에 남게 된다

는 점이 있습니다.

싱글톤을 사용하면 전역변수에 접근하듯이 쉽게 쓸수있지만, 전역변수의 사용을 항상 피하듯이

꼭 필요한 경우에만 사용하여야 할 것 같습니다.

'Design Pattern' 카테고리의 다른 글

Module Pattern, Revealing Module Pattern  (0) 2019.03.01

+ Recent posts