package single;
public class Singleton {
//static을 넣어서 값을 유지한다.
private static Singleton single= null;
//공간은 대부분 public
public int num;
public String name;
public String chicken;
//생성자를 private에 집어 넣는다.
private Singleton() {
}
//내부에서는 생성 가능
//같은 인스턴스만 계속 리턴
public static Singleton getInstance() {
if(single == null) {
single = new Singleton();
}
return single;
}
}
싱글톤 패턴의 핵심
생성자를 private로 선언해서 받지 못하게 하고
private static Singleton single 즉 자기 자신을 나타내는 클래스 변수를 스태틱으로 선언해준다.
getInstance 를 스태틱으로 선언 한 후 null일때만 새 SingleTon을 할당해주고 싱글을 반환한다( 즉 null이 아니면 계속 한가지만 반환한다)
내가 이해한 개념은 스토어에 저장하는 개념으로 클래스간 정보 교류를 원할 하게 하기 위해서 만들어진 패턴으로 생각이 된다.
package acls;
import single.Singleton;
public class MyClass {
private int myNum;
private String myName;
public MyClass() {
myNum = 1234;
Singleton single = Singleton.getInstance();
single.num = myNum;
}
public void MyMethod() {
Singleton si = Singleton.getInstance();
myName = si.name;
System.out.println("myName = " + myName);
}
}
package bcls;
import single.Singleton;
public class YouClass {
private int youNum;
private String name;
public YouClass() {
name = "온유";
Singleton singleton = Singleton.getInstance();
singleton.name = name;
}
public void method() {
Singleton single = Singleton.getInstance();
youNum = single.num;
System.out.println("youNum = " + youNum);
}
}
서로의 값을 생성자에 지정해주고 메소드에서 호출하는 식으로 진행했다.
'Java > java 기초' 카테고리의 다른 글
자바 디자인 패턴 - Factory Pattern (0) | 2019.12.04 |
---|---|
Calendar (0) | 2019.12.04 |
HashMap , TreeMap 상속 을 활용하여 야구선수 관리 시스템 만들기 - 파일 저장 연동 (0) | 2019.12.03 |
HashMap , TreeMap 상속 을 활용하여 야구선수 관리 시스템 만들기 (0) | 2019.12.02 |
LinkedList (0) | 2019.12.02 |