#11StructuralEasy

Module Pattern

Module Pattern

클로저로 private 상태를 감추고 public 메서드만 노출하는 카운터 모듈을 만드세요.

API

export function createCounter(initial?: number): {
  increment(): void;
  decrement(): void;
  get(): number;
  reset(): void;
};

동작

  • initial(기본 0)로 시작
  • increment() / decrement()로 ±1
  • get()은 현재 값 반환
  • reset()은 다시 initial로 복귀
  • 외부에서 카운트 값을 직접 수정할 수 있는 path가 없어야 함 (반환 객체에 count 같은 노출 X)

학습 포인트

  • 클로저로 진짜 private 변수 만들기 (#private 필드 없이도)
  • 같은 함수를 두 번 호출하면 서로 독립된 인스턴스가 됨
  • 모듈 = 자기만의 스코프를 가진 단위