Daily coding
Java Basic : day 12 - Singleton 싱글턴 패턴 본문
Singleton 싱글턴 패턴
Design Pattern : 38 가지가 존재
- 목적 : 규정된 코드의 규칙에 따라 프로그램을 짜는 것
< 배울 대표적인 디자인 패턴들 >
1. Singleton :
- 하나의 인스턴스만 생성하여 데이터를 넘겨주는 방식으로 사용
- 클래스끼리의 데이터를 주고 받을 때 코드를 단순하게 만들기 위함
2. Factory :
3. Observer : 해킹하기 좋은 패턴
...
Singleton pattern
- 단 1개의 instance만을 이용해서 접근하는 패턴
MyClass와 YouClass의 데이터 교환 방법 1 ( 대화 )
MyClass mcls = new MyClass();
YouClass ycls = new YouClass();
1. setter와 getter를 통해 데이터 주고받기
int n = mcls.getMyNum();
ycls.setYouNum(n);
ycls.method();
2. 싱글톤 사용 하기
1) Sigleton Class
public class Singleton {
// 싱글턴 생성자는 단 한개만 만든다( Static )
private static Singleton single = null;
// 넘겨줄 값은 public
// 여기서는 한개의 변수(num)만 교환하기
public int num;
private Singleton() {
// 싱글턴 클래스의 생성자
}
public static Singleton getInstance() {
if(single == null) {
single = new Singleton();
}
return single;
}
}
// 데이터를 넘겨줄 클래스 MyClass
public class MyClass {
private int myNum;
public MyClass() {
myNum=123;
Singleton single = Singleton.getInstance();
single.num = myNum;
}
}
// 데이터를 넘겨받을 클래스 YouClass
public class YouClass {
private int youNum;
public YouClass() {
// 생성자
}
public void method() {
Singleton single = Singleton.getInstance();
youNum = single.num;
System.out.println("Singleton: youNum = " + youNum);
}
}
Singleton single = Singleton.getInstance();
어디서나 접근할 수 있는 싱글턴 클래스
메인 클래스에서 값을 교환하는 것이 아니고 교환하는 주제가 되는 클래스의
내부에서 교환한다.
MyClass mycls = new MyClass();
// mycls의 num을 singleton으로 전달
YouClass ycls = new YouClass();
// sinigleton의 num을 ycls로 전달
ycls.method();
// 출력 : Singleton: youNum = 123
}
}
'Language > Java_basic' 카테고리의 다른 글
Java Basic : day 13 - Calendar 캘린더 클래스 (0) | 2019.12.04 |
---|---|
Java Basic : day 12 - Example01: Baseball 선수정보 입력(HashMap, TreeMap사용) 버전 2 (0) | 2019.12.04 |
Java Basic : day 11 - Example01: Baseball 선수정보 입력(HashMap, TreeMap사용) (0) | 2019.12.02 |
Java Basic : day 10 - LinkedList 링크드리스트 (0) | 2019.12.02 |
Java Basic : day 11 - Interface 인터페이스 (0) | 2019.12.02 |