Writing /volume1/Web/Public/dokuwiki/data/log/deprecated/2024-11-15.log failed
差分
このページの2つのバージョン間の差分を表示します。
次のリビジョン | 前のリビジョン | ||
study:java:design_pattern:iterator [2008/09/13 03:52] – created banana | study:java:design_pattern:iterator [2008/09/13 04:03] (現在) – banana | ||
---|---|---|---|
行 11: | 行 11: | ||
그런데 디자인에 대한 반복자의 영향도 매우 중요한 부분입니다. 컬렉션 객체안에 들어있는 | 그런데 디자인에 대한 반복자의 영향도 매우 중요한 부분입니다. 컬렉션 객체안에 들어있는 | ||
모든 항목에 접근하는 방식이 통일되어 있으면 어떤 종류의 집합체에 대해서도 사용할 수 있는 | 모든 항목에 접근하는 방식이 통일되어 있으면 어떤 종류의 집합체에 대해서도 사용할 수 있는 | ||
- | 다형적인 코드를 만들 수 있기 때문이죠. 메뉴 항목이 배열로 저장되어 있든 ArrayList로 | + | 다형적인 코드를 만들 수 있기 때문이죠. 메뉴 항목이 배열로 저장되어 있든 |
저장되어 있든 신경쓰지 않고 작업을 처리할 수 있었던 printMenu() 메소드가 그런 예 가운데 | 저장되어 있든 신경쓰지 않고 작업을 처리할 수 있었던 printMenu() 메소드가 그런 예 가운데 | ||
하나라고 할 수 있습니다. Iterator 객체만 있으면 되는 거니까요. | 하나라고 할 수 있습니다. Iterator 객체만 있으면 되는 거니까요. | ||
行 21: | 行 21: | ||
이제 클래스 다이어그램을 살펴보도록 할까요? | 이제 클래스 다이어그램을 살펴보도록 할까요? | ||
+ | |||
===== Class Diagram ===== | ===== Class Diagram ===== | ||
{{: | {{: | ||
+ | |||
+ | %%ConcreteIterator%% 구상클래스의 예로 배열에 대해 Iterator 인터페이스를 구현해 보겠습니다. | ||
+ | |||
+ | ===== Implement an Iterator interface ===== | ||
+ | <code java> | ||
+ | import java.util.Iterator; | ||
+ | |||
+ | public class DinnerMenuIterator implements Iterator{ | ||
+ | MenuItem[] list; | ||
+ | int position = 0; | ||
+ | |||
+ | public DinnerMenuIterator(MenuItem[] list){ | ||
+ | | ||
+ | } | ||
+ | |||
+ | public Object next(){ | ||
+ | | ||
+ | | ||
+ | | ||
+ | } | ||
+ | |||
+ | public boolean hasNext(){ | ||
+ | | ||
+ | return false; | ||
+ | } else { | ||
+ | return true; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | public void remove(){ | ||
+ | | ||
+ | throw new IllegalStateException(" | ||
+ | } | ||
+ | | ||
+ | for(int i = position-1; i < (list.length-1); | ||
+ | | ||
+ | } | ||
+ | list[list.length-1] = null; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | </ | ||