본문 바로가기
Design Pattern/Behavioral Design

[Design Pattern] (Behavioral) 반복자 패턴(Iterator Pattern)

by song.ift 2023. 3. 27.

디자인 패턴 유형

  • Creation Design Pattern
    • 객체의 생성에 관련된 패턴
    • 객체의 생성 로직을 숨김으로써 유연성을 향상시킨다.
  • Strutural Design Pattern
    • 클래스와 객체의 구성에 관련된 패턴
  • Behavioral Design Pattern
    • 객체와 객체 간의 통신에 관련된 패턴

 

[Behavioral Design Pattern] 반복자 패턴(Iterator Pattern)

객체의 내부구조가 복잡하더라도 개별 속성에 쉽게 접근하기 위한 패턴

var element;
while (element = agg.next()) {
	// ...
  	console.log(element);
}

위의 agg 객체 구현방법은 아래와 같다.

var agg = (function() {
	var index = 0,
        data = [1, 2, 3, 4, 5],
        length = data.length;
  
  return {
  	next: function() {
      var element;
      
      if (!this.hasNext()) {
      	return null;
      }
      
      element = data[index];
      index += 1;
      return element;
    },
    hasNext: function() {
    	return index < length;
    },
    rewind: function() {
    	index = 0;
    },
    current: function() {
    	return data[index];
    }
  }
})

댓글