JAVA Programming
[21] static 을 활용한 싱글톤 패턴
꾸준히개발하자
2020. 7. 14. 14:16
디자인패턴 – 객체지향 설계할 때 유지보수 하기 위한 23가지 패턴을 소개한 방법이 있다.
객체지향 언어이면 다 사용할수있게끔 되어있다 그중에 싱글톤패턴이 있다.
이미 구현된걸 가져다 쓸 때 new 해서 쓰지않고 어떤 인스턴스를 쓸 때 이해하면 좋다.
단하나만 존재하는 인스턴스 – singleton pattern
생성자로 private 으로 static 으로 유일한 객체 생성 외부에서 유일한 객체를 참조할수 있는
Public static get() 메소드를 구현한다.
- Private
+ public
Private를 가져오게 public를 만들어서 get 해서 가져올수있게 한다.
package staticex;
public class Company {
private static Company instance = new Company(); // 하나는 있어야될때 내부적으로 자기 자신을 가진 인스턴스를 하나 만든다.
// 시스템 전체에 유일한 애다
private Company() {} // 외부에 오픈되는 생성자가 아니다.
// 가져다 쓰려면
public static Company getInstance() { // 일반메소드는 인스턴스 해야지 생성이 가능 이 메소드를 static으로 만든다. 리턴하는건 Company
if(instance == null) {
instance = new Company(); // 하나도 없을때 인스턴스를 만든다.
}
return instance;
}
package staticex;
import java.util.Calendar;
public class CompanyTest {
public static void main(String[] args) {
// Company company = new Compnay(); private 이라 쓸수없다
Company company = Company.getInstance(); // public static으로 선언된 메소드를 가져다 쓸수있다.
Company company2 = Company.getInstance();
// 단하나만 생성해서 그것을 계속 사용할수있다.
System.out.println(company);
System.out.println(company2);
// Calendar 가져오는 곳은 동일하다. Calendar도 싱글톤 패턴으로 구현되어 있다.
Calendar calendar = Calendar.getInstance();
}
}
static 하나의 메모리 영역을 공유하는 것을 알수있다.
static = 정적 = 공유 = 클래스 메소드 =