와챠의 우당탕탕 코딩 일기장
[JAVA 디자인 패턴] - 1, Iterator 패턴 본문
반응형
Iterator Pattern
Iterator 패턴은 for 문의 i 같은 느낌이다.
여러 원소들이 들어있는 배열에서 한 원소씩 (통일된 방법으로) 차례대로 선택하는 데에 사용한다.
아래 예제는 독서실에 들어간 사람의 이름, 번호, 입장 시간을 차례대로 표시하는 프로그램이다.
예제로 뭘 할까 생각하는데 코로나라서 이런 명부를 적는 것이 생각나서 만들어보았다.
- Aggregate = 독서실 집합체
- Iterator = 하나씩 차례로 선택하는 Iterator의 집합체
- StuydingRoom = 독서실
- StudyingRoomIterator = 독서실에 있는 사람들을 한명씩 차례로 선택하는 Iterator
- Person = 사람
여기서 주목해야할 점은 Main 클래스의 이 부분이다.
이 부분은 아래처럼 for 문으로도 충분히 표현할 수 있다.
그러면 굳이 Iterator 패턴을 쓰는 이유는 무엇일까?
-
클라이언트(Main)들과 독서실이 잘 분리되어 있다.
- 독서실 클래스 내부가 바뀌어도 클라이언트(Main)는 영향을 덜 받는다.
- (ex - getPeopleAt()을 getPeopleNumber()으로 수정하는 경우)
-
클라이언트가 집합체에 접근하는 방법이 통일된다.
- iterator의 hasNext(), next()를 이용
-
여러 종류의 Iterator를 만들 수 있다.
- 맨 뒷사람부터 차례대로 선택하는 iterator
JAVA 언어로 배우는 디자인 패턴 입문(p 40~53) 참고
학교에서 디자인 패턴을 배우는데 패턴 기억해두면 좋을 것 같아서
(전에 토이 프로젝트할 때 암것도 모르고 구상하다가 막막해진 경험이... 존재했기 ㄸㅐ문에)
배울 때마다 예제 만들어 보면서 정리하려고 한다~
반응형
'코딩 일기장 > JAVA 디자인 패턴' 카테고리의 다른 글
[JAVA 디자인 패턴] - 6, Strategy 패턴 (0) | 2020.11.09 |
---|---|
[JAVA 디자인 패턴] - 5, Singleton 패턴 (0) | 2020.10.02 |
[JAVA 디자인 패턴] - 4, Factory Method 패턴 (0) | 2020.10.02 |
[JAVA 디자인 패턴] - 3, Template Method 패턴 (0) | 2020.09.22 |
[JAVA 디자인 패턴] - 2, Adapter 패턴 (0) | 2020.09.16 |
Comments