본문 바로가기
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)

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

javascript
닫기
var element; while (element = agg.next()) { // ... ‌​​console.log(element); }

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

javascript
닫기
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]; ​​​​} ​​} })

댓글