자바/자바 기본
싱글톤(Singleton)/getInstance()
은은하게미친자
2022. 7. 25. 23:56
728x90
싱글톤?
어떤클래스가 최초 한번만 메모리를 할당하고(static) 그 메모리에 객체를 만들어 사용하는 디자인 패턴.
생성자의 호출이 반복적으로 이뤄져도 실제로 생성되는 객체는 최초 생성된 객체를 반환해주는것.
한번의 객체 생성으로 재사용이 가능하기떄문에 메모리 낭비를 방지 할수있으나,
너무많은 일 처리와 데이터 공유작업시 싱글톤을 사용하는 다른 클래스 들은 서로 결합도(의존도)가 높아질 수 있음.
+ 특별히 메소드명이 getinstance가 아디어도 상관없으며 getinstance 싱크로나이즈드 처리하는
경우도 많이 있음.
예제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
package Capter10;
class Class1{
private static Class1 instance; //하나의 인스턴스생성
private Class1() {
// 생성자 private 외부에서 설정 못하도록함.
}
//외부에서 인스턴스를 사용할 수 있도록 public으로 선언
public static Class1 getInstance() {
//instance가 null이라면 new를 생성
if(instance == null) {
instance = new Class1();
}
return instance;
}
}
public class Singletone {
public static void main(String[] args) {
Class1 c1 = Class1.getInstance();
Class1 c2 = Class1.getInstance();
if(c1 == c2) {
System.out.println("같은객체");
}
else {
System.out.println("다른객체");
}
}
}
|
cs |
실행결과 |
같은객체 |
https://gmlwjd9405.github.io/2018/07/06/singleton-pattern.html
[Design Pattern] 싱글턴 패턴이란 - Heee's Development Blog
Step by step goes a long way.
gmlwjd9405.github.io
728x90