- [디자인 패턴] 1. 싱글턴 패턴2024년 04월 30일
- Song hyun
- 작성자
- 2024.04.30.:27
728x90반응형[디자인 패턴] 1. 싱글턴 패턴
1. 싱글턴 패턴(Singleton Pattern)이란?
: 싱글턴 패턴이란, 특정 객체가 단 하나만 존재해야 할 때 사용되는 디자인 패턴이다.
이 패턴을 따르는 클래스는 생성자가 여러번 호출되더라도, 실제로 생성되는 객체는 오직 하나이다.
이후로 호출된 생성자는 최초로 생성된 객체 하나를 리턴한다.
*Java에서는 생성자를 private으로 선언하여, 다른 곳에서 생성하지 못하게 만든다.
대신 값을 반아와야 할 때는 getInstance 메서드를 생성해 구현한다.
*공통된 객체를 여러개 생성해서 사용하는 DBCP(DataBase Connection Pool)에서 많이 사용된다.
2. 왜 싱글턴 패턴을 사용할까?
싱글턴 패턴을 따르는 클래스들은 객체를 하나만 생성할 수 있기 때문에, 메모리 낭비를 방지할 수 있다.
또한 해당 인스턴스는 전역(static)이므로, 다른 클래스들이 공유할 수 있다는 장점이 있다.
*다만 싱글턴 인스턴스가 여러 클래스에서 호출되거나, 많은 데이터를 공유하면 결합도가 높아지게 된다.
package useful.ch04; /* * 디자인 패턴 살펴보기 * 1. 싱글톤 패턴이 뭘까? * (1) 생성자를 프라이빗으로 만든다. * (2) static 변수를 활용해서 내부에서 객체를 생성하고, 주소값을 할당한다. * (3) 외부에서 유일하게 참조 할 수 있는 public 메서드를 제공한다. */ public class Company { // 2. static 변수 활용 데이터 타입 선언 private static Company company; // 1. 생성자의 접근 제어 지시자를 프라이빗으로 변경하면 // 외부에서 기본 생성자를 호출 할 수 없다. private Company() { } // 3. 외부에서 접근 가능한 메서드를 만들어준다. public static Company getInstance() { if (company == null) { company = new Company(); } return company; } }
package useful.ch04; public class CompanyTest { public static void main(String[] args) { // 생성 불가 // Company company = new Company(); // 고민! Company 객체에 어떻게 접근할 수 있을까? // A 클래스에서 활용 Company company=Company.getInstance(); System.out.println(company); // B 클래스에서 활용 Company company2=Company.getInstance(); System.out.println(company); } // end of main } // end of class
728x90반응형'디자인 패턴' 카테고리의 다른 글
[디자인 패턴] 6. 싱글톤 패턴 복습하기 (1) 2024.09.25 [디자인 패턴] 5. 콜백 메서드 (0) 2024.09.25 [디자인 패턴] 4. 디자인 패턴이란? (0) 2024.09.25 [디자인 패턴] 3. S.O.L.I.D 원칙 (0) 2024.09.25 [디자인 패턴] 2. 템플릿 메서드 패턴 (0) 2024.04.30 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)