본문 바로가기

Java

Static & Singleton

반응형

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