목차

    싱글톤 패턴

    • 두 가지 화면이 존재한다. 두 가지 화면은 같은 어플이다. 그럴 경우 setting을 관리하는 객체는 반드시 같은 것을 사용해야 한다는 것이다. 

     설명
    • 두 가지 페이지가 있다고 가정하자. FirstPage(우상단), SecondPage(좌하단)
    • Setting(우하단)은 darkMode 셋팅, fontSize 셋팅, 각각의 세팅 값 출력(Get), 각각의 세팅 값 변경(set)을 담당하는 Setting 클래스 이다.
    • FirstFage(우상단)은 첫 번째 페이지이며 setAndPrintSettings라는 메서드를 통해 DarkMode = true, FontSize = 15로 셋팅해 주었다.
    • SecondFage(좌하단)은 printSetting을 통해 DarkMode 여부와 FontSize를 출력한다. 
    • 결과론적으로 첫 페이지와 두번째 페이지는 셋팅값이 다르다. (첫 번째 페이지는 수정된 값, 두 번째 페이지는 기본 값)
    • 따라서 각각의 페이지는 생긴모양이 다르지만, Settings(우하단)의 세팅정보로 통일화(=싱글톤패턴) 하려고한다.
    싱글톤 패턴

    • 맨위에 생성자를 Private로 선언한다. 그렇다면 다른 클래스에서 new를 통해 Settings를 생성하지 못한다. 
    • 그 이후 Settings를 static으로 선언한다.
    • getSettings를 만든다. 만약 setting값이 null이면 new를 해주며 없다면 settings값을 바로 return 해준다.
    • new를 매번 진행하지 않므르로 결과적으로 FirstFage와 SecondFage의 DarkMode, FontSize값은 그대로 유지된다.

    정적변수 vs 동적변수

    FirstFage & SecondFage 페이지 각각 변경

    더보기

    new가 아닌 getsetting을 해줌.

    싱글톤 패턴의 단점

    • 멀티 쓰레드 환경에서 오류가 발생할 소지가 있다.
      • 안전하게 사용하는 방법 : 따로 공부하기.

     

    'Java > *****디자인패턴' 카테고리의 다른 글

    [싱글톤 패턴] Spring에서 싱글톤을 사용하는 이유  (0) 2022.05.05
    퍼사드(Facade) 패턴  (0) 2022.04.03
    빌더 패턴  (0) 2022.04.01
    싱글톤 (Singleton) 패턴  (0) 2022.04.01
    디자인 패턴  (0) 2022.03.31

    + Recent posts