[JAVA] 디자인패턴 - 싱글턴

    🍀 SingleTon

    객체 지향 프로그래밍에서 특정 클래스의 인스턴스가 오직 하나만 생성되도록 보장하는 디자인 패턴이다.

    이 패턴을 사용할 시, 전역 변수를 사용하지 않고도 객체에 전역적으로 접근이 가능해진다.

    시스템 전체에 걸쳐 특정 지원에 대한 일관된 접근을 제공 하는데 유용

     

     

    🧑‍💻 코드보기

    Singleton.class

    public class Singleton {
    
        //private 정적 인스턴스
        private static Singleton instance;
    
        // private 생성자
        private Singleton() {};
    
        //public method
        public static Singleton getInstance() {
            if(instance == null) instance = new Singleton();
    
            return instance;
        }
    }

     

    Main.class

    class Main {
    
        //main 함수 실행
    	public static void main(String[] args) {
    
            //기존 객체 불러오기
            Main main01 = new Main();
            Main main02 = new Main();
            System.out.println(main01);
            System.out.println(main02);
            System.out.println(main01 == main02);  //false
    
            //싱글턴 객체 불러오기
            Singleton singleton01 = Singleton.getInstance();
            Singleton singleton02 = Singleton.getInstance();
            System.out.println(singleton01 == singleton02);  //true
        }
    }

     

     

    🍀사용하기 좋은 곳

    1. 데이터 베이스 연결

    - 데이터베이스 연결 인스턴스는 생각보다 많은 자원을 소모한다.

    - 싱글턴을 이용하면, 데이터베이스 연결 객체를 관리함으로써 재사용하고 효율적으로 자원 관리가 가능하다.

     

    2. 설정 파일 로더

    - 애플리케이션 설정을 로드하는 클래스는 싱글턴으로 구현 ( Spring Frame Work의 Bean )

    - 설정 데이터는 애플리케이션 전체에 공유되며, 한 번만 로드가 필요하기 때문

     

    3. 로그 관리

    - 로그를 기록하는 유틸리티는 애플리케이션 전체에서 접근이 가능해야 한다.

    - 일관된 방식으로 로그처리가 가능

     

    4. 성능 최적화

    - 자원을 안전하고 효율적으로 공유하도록 설계할 때 싱글턴이 적절하게 사용된다.

    반응형

    댓글

    Designed by JB FACTORY