하리Hari

1. 싱글톤 패턴 (Singleton)

오직 하나의 객체만 생성하여 상태를 공유하는 싱글톤 패턴을 알아봅니다.

싱글톤 패턴은 어플리케이션 전체에서 단 하나의 인스턴스(객체)만 생성되도록 보장하고, 어디서든 그 인스턴스에 접근할 수 있게 하는 패턴이에요. 주로 설정 파일 관리자나 데이터베이스 연결 객체처럼 여러 개가 만들어지면 안 되는 경우에 사용해요.

하리(Hari)에서는 우리 키워드(정적 멤버)를 활용하여 싱글톤을 아주 쉽게 구현할 수 있답니다.

1. 데이터베이스 관리자 만들기

_인스턴스 변수를 외부에 숨기고(우리'의 '_인스턴스'를 비어있음으로 정하여 숨기자), 오직 정적 메서드를 통해서만 접근할 수 있도록 방어해 볼까요?

[데이터베이스]를 설계하자:
    '우리'의 '_인스턴스'를 비어있음으로 정하여 숨기자
    '데이터'를 [문자열]인 "연결됨!"으로 정하자
    
    (참고: 외부에서는 이 정적 함수로만 객체를 가져갈 수 있어요)
    [데이터베이스]를 돌려주는 '우리'의 <가져오기>를 만들자 ():
        만약 ('우리'의 '_인스턴스'가 비어있음과 같다) 라면:
            '우리'의 '_인스턴스'를 [데이터베이스]인 새로운 [데이터베이스]()로 정하자
        
        '우리'의 '_인스턴스'를 돌려주자

(참고: 두 번 가져와도 결국 똑같은 객체랍니다!)
'디비1'을 [데이터베이스]인 [데이터베이스]의 <가져오기>()로 정하자
'디비2'을 [데이터베이스]인 [데이터베이스]의 <가져오기>()로 정하자

'디비1'의 '데이터'를 "업데이트됨!"으로 정하자

(참고: 디비1을 바꿨는데 디비2도 바뀌어 있을까요?)
틀"디비2의 상태: {'디비2'의 '데이터'}"를 출력하자
놀이터
결과
코드를 작성하고 '실행' 버튼을 눌러보세요.