- [디자인 패턴] 6. 싱글톤 패턴 복습하기2024년 09월 25일
- Song hyun
- 작성자
- 2024.09.25.:17
728x90반응형[디자인 패턴] 6. 싱글톤 패턴 복습하기
1. 싱글톤 패턴의 개념
: 싱글톤 패턴은 특정 클래스의 인스턴스를 하나만 생성하고, 이를 전역적으로 접근할 수 있도록 하는 디자인 패턴이다.
-주요 목적은 시스템 전체에서 공통된 리소스를 공유하거나, 객체 생성을 제한하여 메모리 낭비를 줄이기 위함이다.
2. 시나리오 코드 : 싱글톤 패턴 구현해보기
(1) singleton.java
package singleton; // 1. 정적 변수를 선언한다. // 2. private 생성자를 선언한다. // 3. 외부에서 접근할 수 있는 public 정적 메서드를 선언한다. public class singleton { // 1. 유일한 인스턴스를 저장할 변수를 선언한다.(private,static) // 많은 개발자들이 싱글톤 패턴의 변수를 instance로 이름짓는다. private static singleton instance; // 2. 외부에서 객체를 생성 못하도록 private 생성자를 선언한다. // 접근지시자가 private이기 때문에, 외부에서 마음대로 생성 불가능. private singleton(){} // 3. 외부에서 인스턴스 주소를 반환받을 수 있는 메서드를 선언한다. // 심화 : 멀티 스레드 환경에서 안전하게 싱글톤 패턴을 구현하기 위해서는 public static synchronized singleton getInstance(){ if(instance == null){ instance = new singleton(); } return instance; } }
(2) MainTest.java
package singleton; public class MainTest { public static void main(String[] args) { // 싱글톤 객체를 불러와보자! singleton systemSingleton1 = singleton.getInstance(); singleton systemSingleton2 = singleton.getInstance(); if(systemSingleton1 == systemSingleton2){ System.out.println("같은 객체를 바라보고 있습니다!"); } } }
3. 싱글톤 패턴의 핵심
-싱글톤 패턴은 특정 클래스의 인스턴스를 하나만 유지하는 디자인 패턴임.
-주로 공통된 리소스를 관리하거나, 전역 상태를 관리하는 데 사용됨.
-장점: 메모리 절약, 전역적으로 동일한 인스턴스 사용
-단점: 전역 상태로 인한 의존성 증가, 멀티 스레드 환경에서의 동기화 이슈
*객체 풀링(Object Pooling): 자원을 효율적으로 관리하기 위한 디자인 패턴 중 하나. 주로 객체 생성 비용이 크거나, 제한된 자원을 사용할 때 객체의 재사용을 통해 성능을 향상시키는 데 사용된다.
-> ex: HikariCP와 커넥션 풀!
728x90반응형'디자인 패턴' 카테고리의 다른 글
[디자인 패턴] 7. 빌더 패턴 예제: 마라탕 주문하기 (0) 2024.09.26 [디자인 패턴] 7. 빌더 패턴 (0) 2024.09.26 [디자인 패턴] 5. 콜백 메서드 (0) 2024.09.25 [디자인 패턴] 4. 디자인 패턴이란? (0) 2024.09.25 [디자인 패턴] 3. S.O.L.I.D 원칙 (0) 2024.09.25 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)