Java

[Java] Singleton 패턴

wwxs 2024. 9. 23. 17:49

Singleton 패턴

  • 소프트웨어 설계 패턴 중 하나
  • 클래스의 인스턴스가 하나만 생성되도록 보장
  • 해당 클래스의 인스턴스에 전역적인 접근을 제공하지만 일관된 상태를 유지

 

싱글턴 패턴의 장단점

  • 장점: 자원의 중복 생성을 방지, 메모리 사용 최적화, 전역 상태를 공유 + 통제된 접근
  • 단점: 전역 상태를 관리 + 다른 클래스에 영향(결합의 가능성), 테스트가 어려움

(예제 코드)

더보기
public class Singleton {
	private static Singleton instance;
	
	
	private Singleton() {}; // 생성자를 private으로 선언 - 외부에서 직접 인스턴스 생성 X
	
	// 전역 접근성을 제공하는 메서드를 제공
	public static Singleton getInstance() {
		if(instance == null) { // 정적 변수에 아무런 값이 없다면 (한번도 인스턴스화 X)
			instance = new Singleton();
		}
		return instance;
	}
package chapter13;

public class SingletonMain {
	public static void main(String[] args) {
		Singleton singleton1 = Singleton.getInstance();
		System.out.println(singleton1);	// chapter13.Singleton@1e80bfe8
		
		Singleton singleton2 = Singleton.getInstance();
		System.out.println(singleton2); // chapter13.Singleton@1e80bfe8
		
		if (singleton1 == singleton2) {
			System.out.println("동일한 인스턴스");
		} else {
			System.out.println("다른 인스턴스");
		}
	}
}

'Java' 카테고리의 다른 글

[Java] Scanner(sc.nextInt() 와 Integer.parseInt(sc.nextLine())의 차이)  (0) 2024.10.02
[Java] 제네릭  (0) 2024.09.23
[Java] MVC 패턴  (0) 2024.09.23
[Java] Map  (0) 2024.09.23
[Java] Set  (0) 2024.09.23