Dog foot print

[GOF] 싱글톤 패턴 본문

Architecture

[GOF] 싱글톤 패턴

개 발자국 2021. 10. 31. 14:39

싱글턴 패턴

활용

싱글턴 패턴은 시스템 전반에 걸쳐서 어떤 인스턴스가 한개만 생성되고 한개의 사용을 강제하는 것에 있다. 예를 들어 API 를 관장하는 인스턴스는 굳이 모듈별로 인스턴스를 생성하지 않아도 되며, API 인스턴스는 프로퍼티의 변화가 거의 없기 때문에 인스턴스를 계속 생성하면 메모리만 낭비하게 된다.

개발자간의 상호 협의간에 싱글턴 인스턴스를 사용하는 예시

var API = (
    ()=>{
        return {
            getData(){
                console.log("Data 가져오기")
            },
            postData(data : any){
                console.log(`${data} 전송중`)
            }
        }
    }
)()

API.getData()
API.postData("데이터")

static 인스턴스를 사용하는 방법

class API {
    private static instance = new (this._API())

    static getInstance() {
        return this.instance
    }

    private static _API() {

        return class _API {
            getData() {
                console.log("데이터 전송 중")
            }

            postData() {
                console.log("데이터 보내는 중")
            }
        }
    }
}

API.getInstance().getData()
API.getInstance().postData()

이 방법은 실제로 구현이 되어있는 _API_API 의 생성을 제한하고 이를 감싸는 API 래퍼로 이루어져 있다. API 클래스는 단순히 _API를 생성하고 이를 제공해주는 일만 하기 때문에, 인스턴스를 만들어도 의미가 없다. getInstance 함수로 instance 함수를 반환하기 때문에 외부에서는 static인 instance 프로퍼티를 변경할 수가 없게 된다.

반응형

'Architecture' 카테고리의 다른 글

[GOF] 컴포지트 패턴  (0) 2021.10.31
[GOF] Builder 패턴  (0) 2021.10.23
[GOF] 추상 팩토리 메서드 패턴  (0) 2021.10.23
[GOF] 팩토리 메서드 패턴  (0) 2021.10.17
[Architecture] S.O.L.I.D [D]  (0) 2021.05.13
Comments