싱글톤 패턴 Singleton

2023. 1. 9.·Java/Design Pattern
반응형

객체의 인스턴스가 오직 1개만 생성되도록 하는 패턴

 

생성자는 외부에서 호출이 불가하도록 private 으로 지정한다. 

 

> 인스턴스를 오직 한개로만 가져감으로써  메모리 측면에서의 장점

최초 한번의 new 연산자를 통해 고정된 메모리 영역을 사용하기에 메모리 낭비를 방지한다.

이미 생성된 인스턴스를 활용함으로 속도에도 이점이 있다.

 

> 클래스 간 데이터 공유가 쉽다

싱글톤의 인스턴스는 전역으로 사용되기에 다른 클래스의 인스턴스들이 접근해 사용이 가능하다.

하지만 여러 클래스 인스턴스에서 싱글톤 인스턴스에 동시에 접근할 경우 동시성 문제 발생 가능 유의


  • 구현 코드가 많이 필요?
  • 자원을 공유하기에 테스트가 어렵다 >
    • 테스트가 격리된 환경에서 후행되면 매번 인스턴스 상태를 초기화 해줘야 함
    • 그렇지 않으면 전역에서 상태르 ㄹ공유하기에 
  • 의존 관계상 클라이언트가 구체 클래스에 의존..
  • 자식 클래스 생성 불가
  • 내부 상태 변경 어려움
package designPattern;
public class Singleton {
private static Singleton st = new Singleton();
private Singleton() {}
public static Singleton getSingleton() {
return st;
}
}
class SingletonCall {
public static void main(String[] args) {
// 기본 생성자가 private 이므로 getSingleton 메소드를 통해서만 호출 가능
Singleton singleton = Singleton.getSingleton();
}
}

https://tecoble.techcourse.co.kr/post/2020-11-07-singleton/

반응형
저작자표시 (새창열림)

'Java > Design Pattern' 카테고리의 다른 글

빌더 패턴 Builder  (0) 2023.01.17
컴포짓 패턴 Composite  (0) 2023.01.16
프로토타입 패턴 Prototype  (0) 2023.01.16
템플릿 메소드 패턴  (0) 2023.01.11
추상 팩토리 패턴  (0) 2023.01.11
'Java/Design Pattern' 카테고리의 다른 글
  • 컴포짓 패턴 Composite
  • 프로토타입 패턴 Prototype
  • 템플릿 메소드 패턴
  • 추상 팩토리 패턴
keartt
keartt
shalpha_2@naver.com
주니어 탈출일기 🐽
shalpha_2@naver.com
  • keartt
전체
오늘
어제
  • 전체보기
    • CS & 알고리즘
      • CS (컴과학)
      • 알고리즘
      • 백준
    • Spring
      • SpringBoot (JPA)
      • Spring (Legacy)
    • Server
      • Linux
      • Docker
    • Java
      • Design Pattern
    • PostgreSQL
    • GIS (공간정보)
    • 오류정리
    • Git
    • JavaScript
      • Node.js
      • React
    • Tool
      • IntelliJ
      • MacOS
      • VSCode
      • Eclipse
      • Other
    • 강의정리들
      • [2023] FullStack
      • [2022] Spring Boot
      • [2021] Spring Boot

인기 글

태그

구간합
브루트포스
이분탐색
코딩애플
반응형
hELLO· Designed By정상우.v4.6.1
keartt
싱글톤 패턴 Singleton

개인정보

kearttshalpha_2@naver.com계정관리

운영중인 블로그

주니어 탈출일기쓰기블로그 관리

이동링크목록

  • 티스토리 홈
  • 피드
  • 로그아웃
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.