본문 바로가기
+)기록/과제

정리사항 12 - 싱글톤 패턴

by AppJinny 2023. 2. 23.

*싱글톤패턴 사용하여 카메라 항상 켜기

-싱글톤 패턴은 객체가 프로그램 내부에서 단 1개만 생성됨 을 보장하며 멀티 스레드에서 이 객체를 공유하며 동시에 접근하는 경우에 발생하는 동시성 문제도 해결해주는 디자인 패턴 입니다.

-싱글톤 : 싱글톤(Singleton) 패턴의 정의는 단순하다. 객체의 인스턴스가 오직 1개만 생성되는 패턴을 의미한다.

-싱글톤 인스턴스가 전역으로 사용되는 인스턴스이기 때문에 다른 클래스의 인스턴스들이 접근하여 사용할 수 있다

//카메라 실행을 하는 클래스, Lazy Holder 싱글톤 패턴 구현
public class MySingleton {

    private Camera camera;

    private MySingleton(){
    }


    private static class Holder {
        private static final MySingleton instance = new MySingleton();
    }

    public static MySingleton getInstance() {
        return Holder.instance;
    }

    public Camera getCamera()
    {
        camera = Camera.open();
        return camera;
    }

}

 

MySingleton mySingleton = MySingleton.getInstance();
Camera mCamera = mySingleton.getCamera();

 

 

*싱글톤 기본적용(홀더)

https://injae-kim.github.io/dev/2020/08/06/singleton-pattern-usage.html

 

Injae's devlog

현실의 문제를 해결하는 엔지니어

injae-kim.github.io

 

*싱글톤 응용(get, set)

https://wfreud.tistory.com/377

 

[ANDROID] 전역 변수 예제 만들기, 활용

목표 : 안드로이드 액티비티 외에 다른곳에서 저장한 값들을 사용하기 위해 활용함. ( 액티비티 이외에 다른곳에서는 context를 사용하기 힘들어서 ) 다른더 좋은방법이 있으면 추천해주시면 감사

wfreud.tistory.com

 

 

*설명

https://sorjfkrh5078.tistory.com/108

 

[Java] 싱글톤 패턴(Singleton Pattern) 구현 방법

싱글톤 패턴은 생성(Creational) 패턴 중 하나로써 객체를 오직 하나만 생성하여 생성된 객체를 프로그램 어디에서나 접근하여 사용할 수 있도록 하는 패턴이다. ​간단히 말해서 애플리케이션 전

sorjfkrh5078.tistory.com

 

https://effortguy.tistory.com/183

 

[디자인 패턴] 총 정리 (3) - 싱글톤(Singleton) 패턴 [생성 패턴]

이번 포스팅부터 드디어 디자인 패턴을 정리하게 되었네요. 이번 포스팅에서 알아볼 패턴은 생성 패턴의 싱글톤(Singleton) 패턴입니다. 싱글톤(Singleton) 패턴이란? 싱글톤 패턴은 인스턴스를 오직

effortguy.tistory.com

 

*싱글톤 자세한 설명

https://myhappyman.tistory.com/35

 

JAVA - 싱글톤(Singleton), getInstance() 메소드

자바 프로그램이 동작할 때 최초 한번만 메모리를 할당하고 할당된 메모리에서만 사용하는 방식을 말한다. 즉, 고정된 메모리영역을 사용하여 메모리 낭비를 줄이고 공통된 객체를 사용할 때

myhappyman.tistory.com

 

 

.*final메소드

-final이라는 단어의 뜻은 '마지막의', '최종의' 정도로 해석된다. 단어의 뜻에서 유추할 수 있듯이 final로 선언한 변수 , 메소드, 클래스 등은 최종적인 것이라 생각하면 된다. final로 선언한 변수는 더 이상 바꿀 수 없고 final 클래스는 상속이 불가능하며 final 메소드는 재정의(오버라이딩)이 불가능하다.

각각에 대해 final로 선언된 코드를 보면 바로 이해할 수 있을 것이다.

https://dogrushdev.tistory.com/180

 

(Java) 34 - final 선언

final이라는 단어의 뜻은 '마지막의', '최종의' 정도로 해석된다. 단어의 뜻에서 유추할 수 있듯이 final로 선언한 변수 , 메소드, 클래스 등은 최종적인 것이라 생각하면 된다. final로 선언한 변수는

dogrushdev.tistory.com