티스토리 뷰
싱글톤 패턴이란 ?
클래스가 오로지 하나의 인스턴스만을 가지고 있는 패턴을 말한다.
싱글턴 패턴으로 구현된 대표적인 클래스는 Calendar 클래스가 있다.
어떻게 구현하는가 ?
- 외부에서 인스턴스를 생성할 수 없도록, 생성자의 접근 제어자를 private으로 설정해준다.
- 유일한 인스턴스는 클래스 내부에서 생성해놓는다.
- 클래스 내부에 생성된 인스턴스를 반환할 수 있는 클래스 메서드를 만든다
package Singltone;
public class Company {
private static Company instance = new Company();
private Company(){}
public static Company getInstance() {
if(instance == null)
instance= new Company();
return instance;
}
}
위에가 바로 싱글턴 패턴 클래스의 에시이다. 인스턴스를 반환하는 함수를 static 메서드로 한 이유는 간단하다. 인스턴스 메서드는 클래스 외부에서 '인스턴스를 생성한 후' 접근이 가능하다. 하지만, 싱글턴 패턴에서는 외부에서 인스턴스 생성이 아예 불가능하다.
따라서 외부에서 인스턴스 생성 없이도 접근 가능하도록 클래스 메서드로 선언해주어야 한다.
package Singltone;
public class CompanyTest {
public static void main(String[] args)
{
Company c1 =Company.getInstance();
Company c2 =Company.getInstance(); //static 메서드
System.out.println(c1); //c1 == c2 is true (같은 인스턴스)
System.out.println(c2);
}
}
'programming language > Java' 카테고리의 다른 글
[자바] 형식화 포맷 - ChoiceFormat 과 MessageFormat (0) | 2020.04.06 |
---|---|
[자바] 형식화 포맷 - Decimal Format과 Simple Date Format (0) | 2020.04.06 |
[자바] StringBuffer클래스 (0) | 2020.04.04 |
[자바] String 클래스 (0) | 2020.04.04 |
[자바] Object 클래스의 메서드 (0) | 2020.04.04 |
댓글