컴퓨터공학 💻 도서관📚
Part2. 2-18 싱글톤 패턴 : 프로그램에서 인스턴스가 유일해야 하는 경우 사용하는 디자인 패턴 본문
Part2. 2-18 싱글톤 패턴 : 프로그램에서 인스턴스가 유일해야 하는 경우 사용하는 디자인 패턴
들판속초록풀 2025. 2. 3. 17:29싱글톤 패턴 : 프로그램에서 인스턴스가 단 한 개만 생성되어야 하는 경우 사용하는 디자인 패턴
static 변수, static 메서드를 활용하여 구현 할 수 있다
디자인 패턴은 객체 지향 프로그램을 좀 더 효율적으로 할 수 있게 도와주는 여러가지 패턴으로 23가지 정도 된다
(수정, 유지보수 등을 더 쉽게 만들어준다)
(나중에 공부해 보세요)
이중에 하나가 싱글톤 패턴이고 싱글톤 패턴은 static을 활용해서 만들 수 있는 패턴이다.
프로그래밍을 하다 보면 여러 개의 인스턴스가 존재하면 문제가 되는 상황이 있다
예를 들어, 날짜, 시간 등이 있다.
우리에게 대한민국의 그날 날짜와 시간은 모두 동일해야 한다
이런 경우 싱글톤 패턴을 활용하여 객체를 정의한다
* 싱글톤 패턴 사용법
유일한 인스턴스를 클래스 내부에서 private static 으로 선언해준다 (하나만 만들고: private , 공용으로 쓰게한다 : static)
싱글톤 패턴에서는 생성자를 따로 private로 생성해줘야 한다
기본 생성자는 public으로 제공되기 때문에 외부에서 접근할 수가 있다
(오답노트 : 여기에는 static 쓰는거 아님)
일반 메서드는 인스턴스를 생성하고 사용할 수 있기 때문에
외부에서 getinstance 메서드를 사용할 수 있게 하려면 static으로 선언해야 한다
public class Company {
private static Company instance = new Company(); // 유일한 인스턴스를 내부에서 선언
private Company() { // 생성자를 private로 만들기
}
public static Company getInstance() { // 외부에서 유일한 인스턴스에 접근할 수 있게 메서드 정의
if (instance == null) { // 만약을 대비한 예외처리 코드 (방어적인 코드)
instance = new Company();
}
return instance;
}
}
외부에서 참조할 때는 클래스이름 . 메서드이름() 으로 유일한 인스턴스르 참조한다
public class CompanyTest {
public static void main(String[] args) {
Company company1 = Company.getInstance(); // getInstance 메서드로 참조
System.out.println(company1);
}
}
클래스 다이어그램
맨 위는 클래스 이름
중간은 변수
마지막은 생성자와 메서드
앞에 - 는 private라는 뜻이고 + 는 public 이라는 뜻이다.
'✅🌲강의 복습 노트 > 패캠 JavaSpring 강의,코드 복습' 카테고리의 다른 글
Part2. 2-20 배열 (0) | 2025.02.04 |
---|---|
Part2. 2-19 static과 싱글톤 패턴 복습 (0) | 2025.02.04 |
Part2. 2-17 static 메서드 (0) | 2025.01.30 |
Part2. 2-16 static 변수: 여러 인스턴스에서 공통으로 사용하는 변수 (0) | 2025.01.28 |
Part2. 2-13, 14, 15 객체 간의 협력 (0) | 2025.01.02 |