반응형
사용자가 직접 접근이 불가능하고 Class를 통해서만 접근가능하도록 설계
예제
TS 파일
class ClassName {
private static instance: ClassName | null = null;
public static getInstance(): ClassName{
// Classname으로 부터 만든 object가 없으면 만든다.
if (ClassName.instance === null){
// class 내부이기 때문에 호출 가능
ClassName.instance = new ClassName();
}
// ClassName으로 부터 만든 object가 있으면 그걸 리턴
return ClassName.instance;
}
// new로 생성하지 못하도록 한다.
private constructor() { };
}
const a12 = ClassName.getInstance();
const b12 = ClassName.getInstance();
// 서로 같은지 비교
console.log(a12 === b12);
컴파일된 JS 파일
"use strict";
class ClassName {
// new로 생성하지 못하도록 한다.
constructor() { }
static getInstance() {
// Classname으로 부터 만든 object가 없으면 만든다.
if (ClassName.instance === null) {
// class 내부이기 때문에 호출 가능
ClassName.instance = new ClassName();
}
// ClassName으로 부터 만든 object가 있으면 그걸 리턴
return ClassName.instance;
}
;
}
ClassName.instance = null;
const a12 = ClassName.getInstance();
const b12 = ClassName.getInstance();
// 서로 같은지 비교
console.log(a12 === b12);
결과 확인
반응형
'프론트엔드 > TypeScript' 카테고리의 다른 글
Abstract Class (0) | 2021.06.21 |
---|---|
Class - 상속 (0) | 2021.06.21 |
class - Static Properties 와 Method (0) | 2021.06.21 |
class - index Signatures (0) | 2021.06.21 |
class - readonly 속성 (0) | 2021.06.21 |