디자인패턴 – 객체지향 설계할 때 유지보수 하기 위한 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 = 정적 = 공유 = 클래스 메소드 =
'JAVA Programming' 카테고리의 다른 글
[27] 다차원 배열 (0) | 2020.07.15 |
---|---|
[26] 객체 배열 (0) | 2020.07.14 |
[24] 배열이란 ? (2) (0) | 2020.07.14 |
[23] 배열 이란 ? (0) | 2020.07.14 |
[20] static 변수 , 메소드 = 클래스변수 = 정적 변수 (0) | 2020.07.14 |