1. 1. 싱글톤 패턴이란?
- 객체 지향 프로그램에서 인스턴스가 단 한 개만 생성되어야 하는 경우 사용하는 디자인 패턴
- static 변수, 메서드를 활용하여 구현 할 수 있음
디자인 패턴 : 객체 지향 프로그램을 용이하게 사용하도록, 추후 유지 보수와 확장이 쉽도록 만들어놓은 패턴
2. 2. 싱글톤 패턴으로 회사 객체 구현하기
생성자는 private으로 선언
ex ) 시간 / 회사
기본 생성자가 자동으로 제공되면, "회사"를 여러개 만들 수 있게 될 수 있으므로
우리가 미리 생성자를 private으로 선언
<code />
private Company() {}
클래스 내부에 유일한 private 인스턴스 생성!
<code />
private static Company instance = new Company();
외부에서 유일한 인스턴스를 참조할 수 있는 public 메서드 제공
<code />
public static Company getInstance() {
if( instance == null) {
instance = new Company();
}
return instance;
}
Company.java
<java />
package ch18;
public class Company {
private static Company instance = new Company(); //유일한 인스턴스!
private Company() {
}
//유일한 객체를 외부에서 쓸 수 있도록 하는 메소드
public static Company getInstance() { //생성자를 안만들어도 쓸 수 있게 static 추가->클래스 이름으로 메소드 사용
if (instance==null) {
instance=new Company();
}
return instance;
}
}
CompanyTest.java
<java />
public class CompanyTest {
public static void main(String[] args) {
Company company1 = Company.getInstance();
Company company2 = Company.getInstance();
System.out.println(company1);
System.out.println(company2);
//Calendar calendar = Calendar.getInstance(); //시간 -> 유일한 객체 제공(회사와 같은 예)
}
}


클래스/변수/생성자,메소드
-는 private
+는 public
'JAVA' 카테고리의 다른 글
2-16.객체 지향 - 객체 배열 (0) | 2022.01.12 |
---|---|
2-15.객체 지향 - 배열 (0) | 2022.01.12 |
2-13.객체 지향 - static메서드, 변수의 유효 범위 (0) | 2022.01.11 |
2-12.객체 지향 - static 변수 (0) | 2022.01.11 |
2-11.객체 지향 - 객체 간의 협력(프로그래밍 예제 포함) (0) | 2022.01.09 |