#23StructuralEasy

모듈 패턴 (createCounter)

모듈 패턴

모듈 패턴을 사용해 내부 카운트 변수를 캡슐화하는 createCounter() 팩토리를 구현하세요.

반환된 객체는 increment, decrement, value 메서드를 제공하지만, 내부 count 변수는 외부에서 직접 접근할 수 없습니다.

API

export function createCounter(): {
  increment(): void;
  decrement(): void;
  value(): number;
};

예시

const c = createCounter();
c.increment();
c.increment();
c.decrement();
c.value(); // 1
// c.count → undefined (비공개)

학습 포인트

  • 클로저/IIFE로 비공개 변수 만들기 (TS)
  • private 필드로 캡슐화 (Java/Kotlin)
  • private 멤버로 캡슐화 (C++)
  • 공개 API와 내부 구현을 명확히 분리
언어: