-
[GoF] 싱글톤 패턴, Singleton patternGof Design Pattern 2021. 9. 2. 14:30
싱글톤 패턴, Singleton pattern
싱글톤 패턴이란?
싱글톤 패턴은 객체가 오직 1개만 생성되야 하는 경우에 사용되는 패턴입니다.
싱글톤은 클래스의 인스턴스는 오직 하나임을 보장하며 이 인스턴스에 접근할 수 있는 방법을 제공합니다.
싱글톤 왜 사용할까?
예를들어, JDBC의 커넥션을 관리하는 커넥션 풀은 객체가 여러 개 생성되면 설정 값이 변경될 위험이 생길 수 있습니다!
- 클래스에서 만들 수 있는 객체를 오직 하나로 만들어서 이에 대한 접근을 하나로 통일하여 제공한다.
- 자바에서는 CPP와 달리 전역 변수가 존재하지 않으므로 객체가 하나만 존재하도록 설계하고 접근 메서드를 제공한다.
싱글톤을 사용하게 되면
- 유일하게 존재하는 객체로의 접근을 통제 할 수 있다.
- 전역 변수를 사용함으로써 발생되는 문제를 줄일 수 있다.
클래스 다이어그램
객체 협력(collaborations)
사용자는 싱글톤 클래스에 정의된 public 메서드를 통해서 싱글톤 객체에 접근이 가능하다.
코드보기 Click!
public class ConnectionPool { private static ConnectionPool instance = new ConnectionPool(); //생성자의 접근제어자를 private로 private ConnectionPool(){} //외부에서 접근 가능한 static 메서드 생성 public static ConnectionPool getInstance(){ if(null == instance){ instance = new ConnectionPool(); } return instance; } }
public class TestSingleton { public static void main(String[] args){ ConnectionPool instance1 = ConnectionPool.getInstance(); ConnectionPool instance2 = ConnectionPool.getInstance(); System.out.println(instance1 == instance2); } }
'Gof Design Pattern' 카테고리의 다른 글
[GoF] 팩토리 메서드 패턴(Factory Method Pattern) (0) 2021.12.05 [ GoF] 템플릿 메서드 패턴(Template Method Pattern) (0) 2021.12.04 [GoF] 빌더 패턴(Builder Pattern) (0) 2021.12.03 [GoF] 추상 팩토리 , Abstract Factory (0) 2021.09.06 [GoF] 프로토타입 패턴, Prototype pattern (0) 2021.09.03