싱글턴 패턴(Singleton Pattern)

seunghyun lee·2022년 7월 19일
0

Computer Science

목록 보기
7/19
post-thumbnail

싱글턴 패턴

특정 클래스의 인스턴스가 하나만 만들어지도록 하는 패턴
최초 생성 후 호출된 생성자는 객체를 리턴한다.

의존성 주입(Dependency Injection)

한 객체의 의존 관계를 외부 객체에서 결정해주는 것

멀티 프로세스 vs 멀티 스레드

프로세스 : 운영체제로부터 자원을 할당받는 작업의 단위, 즉 현재 실행 중인 프로그램.
스레드 : 프로세스에서도 함수 단위로 더 잘게 쪼개어 실행하는 것.
각 프로세스는 독립적인 개체로서 서로에게 간섭하는 것이 불가능하다.
효율적인 코드 실행을 위해 코드를 분할 실행하는데 이 때 나오는 개념이 멀티 프로세스.

싱글턴 패턴의 예시

책이 하나 있고 그 책을 대출받는 상황이라고 합시다.

public class Book {
    private Book(){}
    private static Book book = new Book();

    public static Book getBook(){
        return book;
    }
}

위와 같이 Book()의 생성자의 접근제어자를 private으로 설정하여 외부에서 Book클래스의 인스턴스를 생성하지 못하게 하고, JVM에서 클래스를 읽어올때 단 한번 인스턴스가 생성되게 만들었다.
이처럼 프로그램 실행시 Book클래스의 인스턴스가 단 하나 존재하게 된다.

싱글턴 패턴의 장단점

  • 장점

    메모리 낭비를 방지한다.
    다른 클래스의 인스턴스들이 데이터를 공유할 수 있다.
    두 번째 이용시 부터는 객체 로딩 시간이 줄어 성능이 좋아진다.

  • 단점

    많은 데이터를 공유할 경우 클래스간의 결합도가 높아진다.
    멀티 스레드 환경에서 동기화처리를 하지 않으면 동시에 생성되는 경우가 발생할 수 있다.

0개의 댓글