ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [GoF] 싱글톤 패턴, Singleton pattern
    Gof 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);
    
        }
    }

    댓글