Singleton 패턴

duckbill413·2023년 8월 13일
0

Java

목록 보기
1/5
post-thumbnail

Singleton

객체의 생성 제어와 Singleton 디자인 패턴

  • 객체의 생성을 제어해야 한다면?

    • 여러 개의 객체가 필요 없는 경우
      • 객체를 구별할 필요가 없는 경우 = 수정 가능한 멤버 변수가 없고 기능만 있는 경우
      • 이런 객체를 stateless 한 객체라고 한다.
    • 객체를 계속 생성/삭제 하는데 많은 비용이 들어서 재사용이 유리한 경우
  • Singleton 디자인 패턴

    • 외부에서 생성자에 접근 금지 → 생성자의 접근 제한자를 private로 설정
    • 내부에서는 private에 접근 가능하므로 직접 객체 생성 → 멤버 변수이므로 private 설정
    • 외부에서 private member에 접근 가능한 getter 생성 → setter 불필요
    • 객체 없이 외부에서 접근할 수 있도록 getter와 변수에 static 추가
    • 외부에서는 언제나 getter를 통해서 객체를 참조하므로 하나의 객체 재사용

Singleton 디자인 패턴

class SingletonClass {
		private static SingletonClass instance = new SingletonClass();
		private SingletonClass() {} // 기본 생성자를 private로..

		public static SingletonClass getInstance() {
				return instance;
}

public class SingletonTest {
		public static void main (String[] args) {
				SingletonClass sc1 = SingletonClass.getInstance();
				SingletonClass sc2 = SingletonClass.getInstance(); // sc1의 객체와 같다
		}
}
profile
같이 공부합시다~

0개의 댓글