본문 바로가기

CS 스터디

1.1.6 이터레이터 패턴, 1.1.7 노출모듈 패턴

참고한 책: 면접을 위한 CS 전공지식 노트 (http://www.yes24.com/Product/Goods/108887922)

1. 디자인 패턴과 프로그래밍 패러다임

    1.1. 디자인 패턴

        1.1.6. 이터레이터 패턴

        1.1.7. 노출모듈 패턴

 

p.49

이터레이터 패턴(Iterator pattern)

이터레이터를 사용하여 컬렉션의 요소들에 접근하는 디자인 패턴. 자료형의 구조와는 상관없이 이터레이터라는 하나의 인터페이스로 순회 가능.

 

p.50

자바스크립트에서의 이터레이터 패턴

for(let a of b): b에 들어있는 요소들 모두 순회. for a of b >> 이터레이터 프로토콜

 

자바의 이터레이터

//코드 참고: 명품 자바 프로그래밍 개정4판
Vector<E> v = new Vector<E>();
Iterator<E> it = v.iterator();
메소드 설명
boolean hasNext() 방문할 요소가 남아있으면 true 리턴
E next() 다음 요소 리턴
void remove() 마지막으로 리턴된 요소 제거

표 출처: 명품 자바 프로그래밍 개정4판

 

p.51

노출모듈 패턴(revealing module pattenr)

즉시 실행 함수를 통해 private, public 과 같은 접근 제어자를 만드는 패턴. 자바스크립트는 접근제어자가 존재하지 않음.

const v = (() => {
	const a = 1
    const b = () = 2
    const public = {
    	c: 2,
        d: () => 3
    }
    return public
})()

 

 

p.52

접근 제어자

접근 가능 여부 클래스에 정의된 함수 자식 클래스 외부 클래스
public O O O
protected O O X
private O X X

즉시 실행 함수

함수를 정의하자마자 바로 호출하는 함수. 초기화 코드, 라이브러리 내 전역 변수의 충돌 방지 등에 사용한다.

'CS 스터디' 카테고리의 다른 글

1.2 프로그래밍 패러다임  (0) 2023.06.01
1.1.8 - 1.1.10 MVC 패턴, MVP 패턴, MVVM 패턴  (0) 2023.06.01
1.1.5 프록시 패턴과 프록시 서버  (0) 2023.06.01
1.1.4 옵저버 패턴  (0) 2023.06.01
1.1.3 전략 패턴  (0) 2023.05.31