Develop/Java

[Java/디자인패턴]Singleton/싱글톤

순무엄마동생 2021. 1. 22. 16:28

생성자가 여러번 호출되더라도 하나의 인스턴스만을 생성하는 패턴

 


장단점

장점

  • 메모리 효율적
  • 다른 인스턴스와 데이터 공유
  • 공통된 객체를 여러개 생성하여 사용하기에 편리

 

단점

  • 객체지향의 개방-폐쇄 원칙을 위배 → 수정과 테스트 어려움

사용방법

  1. 선언하고자 하는 객체 private static 선언    
  2. 생성자 private 선언    
  3. 객체를 받아오는 메소드 public static 선언
public class Car {

    private static Car instance = new Car();

    private Car() {
    }

    public static Car getInstance() {
        return instance;
    }
    
    ... // 다른 메소드들
}


public class carTest {
	public static void main(String[] args) {
    	Car car = Car.getInstance();
        
        ...
        
        Car car2 = Car.getInstance();
    }
}


public class carTest2 {
	public static void main(String[] args) {
    	Car car = Car.getInstance();
        
        ...
    }
}

carTest의 car, car2와 carTest2의 car 모두 같은 인스턴스!

'Develop > Java' 카테고리의 다른 글

[Java] JVM 구조 및 동작원리 - 1  (0) 2023.01.03
[Java] 스트링풀(String Pool)  (0) 2022.12.31