Iterator 패턴의 목적
aggregate object의 내부 구현이나 구조를 보여주지 않으면서 aggregate object의 요소들에 접근할 수 있게 하는 것
aggregate object란 다른 object들을 모아두기 위한 객체 == (container, collection), ex) LinkedList, Hash Table...
Iterator 패턴을 사용하지 않는 경우
for(int i=0;i< breakfastItems.size();i++){
MenuItem menuItem = (menuItem) breakfastItems.get(i);
}
for(int i=0;i< lunchItems.length;i++){
MenuItem menuItem = lunchItems[i];
}
Iterator 패턴을 사용하는 경우
Iterator iterator = breakfastMenu.createIterator();
while(iterator.hasNext()){
MenuItem menuItem = (MenuItem) iterator.next();
}
iterator = lunchMenu.createIterator();
while(iterator.hasNext()){
MenuItem menuItem = (MenuItem) iterator.next();
}
즉 우리가 접근하려는 aggregate object가 array 이건 List건 신경 안써도 됨
SRP: 클래스는 변할 이유가 1가지여야한다
Aggregate 과 Iteration 이 다른 작업
SRP를 잘 지킬수록 응집도(Cohesion)이 올라감
반응형
'독서 기록 > 디자인패턴' 카테고리의 다른 글
[디자인패턴] 헤드퍼스트 디자인패턴 Chap.3 (Feat. 데코레이터 패턴) (0) | 2022.11.01 |
---|---|
[디자인 패턴] Composite Pattern (0) | 2022.10.24 |
[디자인 패턴] SOLID 원칙 (0) | 2022.10.18 |
[디자인 패턴] 중재자 패턴 vs 옵저버 패턴 (0) | 2022.10.17 |
[디자인패턴] 헤드퍼스트 디자인패턴 Chap.5 (Feat. 싱글톤 패턴) (0) | 2022.10.17 |
댓글