Company 인스턴스를 하나만 만들고 싶으면 생성자를 private으로 선언하고 getinstance라는 함수를 만들어 주는데 public static으로 만들어서 인스턴스 생성없이도 호출 가능하도록 만들고,
그 안에는 Company class 내부에서 private 생성자로 만든 인스턴스를 반환하도록 한다.
그러면 다른 클래스에서 만들때는
Company company = Company.getinstnace() 이렇게 new를 사용하지 않고 만들게 되고
몇개를 만들던지 같은 인스턴스를 참조함.
=>한 클래스 파일 내에서 다른 걸 만들어 봐야 같은 인스턴스를 가져옴. Singleton이라고 함.
public class Company {
private static Company instance = new Company();
public static Company getInstance() {
if(instance == null)
{
instance = new Company();
}
return instance;
}
private Company() {
}
}
import java.util.*;
public class CompanyTest {
public static void main(String[] args)
{
Company company = Company.getInstance();
Company company2 = Company.getInstance();
Calendar cal = Calendar.getInstance();
//동일한 인스턴스를 반환 할거임. 유일한 Company객체를 가짐.
}
}
'Java' 카테고리의 다른 글
기본형 배열 & 참조형 배열 (0) | 2019.10.26 |
---|---|
static method (0) | 2019.10.26 |
자바 연습 (생성자 , 정보은닉 , 객체 협력) (0) | 2019.10.25 |
this 응용 (0) | 2019.10.25 |
정보 은닉. (0) | 2019.10.25 |