본문 바로가기
OLD_달려라/소프트웨어공학

Design Pattern ] Singleton Pattern

by 달승 2020. 7. 2.

 

 

Singleton

Real-World Analogy The government is an excellent example of the Singleton pattern. A country can have only one official government. Regardless of the personal identities of the individuals who form governments, the title, “The Government of X”, is a g

refactoring.guru

 


Singleton Pattern

Class가 하나의 인스턴트를 갖게 하는 동시에 액세스를 제공할 수 있게 하는 패턴

(제가 갠적으로 좋아하는 패턴입니다.

왜냐면 구현이 간단하걸랑요!ㅎ)

 

 



Problem

Singleton Pattern은 'Single Responsibility Principle'을 침해하면서 동시에 두 가지 문제들을 해결합니다.

Single Responsibility Principle?

: (단일 책임 원칙) 모든 클래스는 하나의 '책임'을 가진다.
  또한 클래스는 그 책임을 캡슐화해야 한다.

1. 클래스에는 하나의 인스턴스만.

   : 생성자 호출은 항상 디자인에 의해 객체를 반환해야 하기 때문에 아는 일반 생성자로 구현이 불가능합니다.

 

2. 해당 인스턴스에 대해 Global access point를 제공해라.

   : 필수 객체를 저장할 때, 전역변수는 안전하지 않을 수 있습니다.

     전역변수와 마찬가지로 Singleton Pattern을 사용하면 프로그램의 어디서든 일부 객체에서 액세스 할 수 있습니다.

 

 

 

 



Solution

   - Private : 다른 객체가 Singleton Class와 연산자를 사용하지 못하도록 기본 생성자를 비공개로 만듭니다.

   - Static creation Method : 생성자를 만들기 위해 정적 생성 메소드를 만듭니다.

 

 

 

 

 



전체 다이어그램

 

 

 

'OLD_달려라 > 소프트웨어공학' 카테고리의 다른 글

Design Pattern] Builder  (0) 2020.07.02
GUI Swing ] Factory Method Pattern  (0) 2020.07.01
Design Pattern] Abstract Factory  (0) 2020.06.28
Design Pattern] Factory Method  (0) 2020.06.27

댓글