4/18 싱글톤 패턴

박세현·2024년 4월 18일

JAVA

목록 보기
8/22
post-thumbnail

싱글톤 패턴

  • 어떤 클래스가 최대 한 번의 인스턴스(객체)만 생성되도록 보장하고, 그 인스턴스(객체)에 대한 전역적인 접근을 제공하는 패턴
    = 필요할 때 객체를 한개만 생성하고 공유하기 위해 만든패턴

  • static 응용 - 싱글톤 패턴
  • 메모리를 절약하는 방법 패턴
    ex) static : 처음부터 공간 할당, 활성화
    -> 사용하지 않아도 이미 메모리를 차지하는 문제가 있다
    -> 싱글톤 패턴으로 해결

참고) 편의기능
java.lang.Math : 수학 관련 편의 기능 모음 클래스
java.util.Arrays: 배열을 다룰 때 사용할 수 있는 편의 기능 모음 클래스

편의기능 클래스의 경우는 객체를 여러개 생성할 필요x
-> 매서드나 변수 상수를 static으로 정의한 경우가 많다
-> 문제점?
static : 처음부터 공간 할당, 활성화 -> 사용하지 않아도 이미 메모리를 차지하는 문제가 있다
-> 싱글톤 패턴으로 해결

벗 객체를 매번 생성하는 경우 : 데이터 클래스
ㄴ ex) 게시판에서 게시글...




1. 싱글톤패턴의 목적

1) 기능을 담당하는 객체는 여러개 만들 필요x

2) 이 기능이 항상 필요하지않으니 필요할 때만 객체 생성

3) 객체는 필요할 때 하나만 생성하고 공유




2. 싱글톤패턴 만드는 방식

1) 생성자를 외부에서 직접 호출x, 접근 제어자 private 변경

2) 클래스 내부에서 정적 변수(static)로 선언

3) 클래스 내부에서 생성된 객체를 반환하는 정적 함수(static)

  • 최초 호출 시 정적변수에 객체를 생성

4) 동시성 작업 : 동기화 처리

  • 하나의 객체를 동시에 작업하다보면 문제가 생길 수 있음
static {
// 클래스가 로드 되는 시점부터 실행
// 객체가 생성하지 않아도 실행
}

profile
귤귤

0개의 댓글