💡 디자인 패턴이란?
💡 이터레이터 패턴 (iterator pattern)
이란?
이터레이터
를 사용하여 컬렉션의 요소들에 접근하는 디자인 패턴으로, 순회할 수 있는 자료형의 구조와는 상관없이 이터레이터라는 하나의 인터페이스로 순회 가능
이터레이터 프로토콜
: 이터러블한 객체들을 순회할 때 쓰는 규칙이터러블한 객체
: 반복 가능한 객체로, 배열을 일반화한 객체🔗 이터레이터 패턴 자바스크립트 예시
👉 for a of b
라는 이터레이터 프로토콜을 통해 다른 자료구조들을 동일하게 순회
const mp = new Map()
mp.set('a',1)
mp.set('b',2)
const st = new Set()
st.add(1)
st.add(2)
for(let a of mp) console.log(a) // ['a',1] ['b',2]
for(let a of st) console.log(a) // 1 2
💡 노출모듈 패턴 (revealing module pattern)
이란?
즉시 실행 함수를 통해 private, public 같은 접근 제어자를 만드는 패턴
🔗 실제 활용
CJS(CommonJS)
⭐️ 자바스크립트는 접근 제어자가 존재하지 않고 전역 범위에서 스크립트가 실행되므로, 노출모듈 패턴을 통해 private, public 접근 제어자를 구현하기도 함
🔗 노출모듈 패턴 자바스크립트 예시
const pukuba = (() => {
const a = 1
const b = () => 2
const public = {
c : 2,
d : () => 3
}
return public
})()
console.log(pukuba) // { c: 2, d: [Function: d]}
console.log(pukuba.a) // undefined