Android 설계 모드의 (13) -- 디버거 모드

2344 단어

반복자 모드


교체기 모드는 행위 모드에 속한다.
주로 하나의 집합 대상에 있는 모든 요소를 가져오는 데 사용되지만, 그 대상의 내부 세부 사항도 노출되지 않는다.
주로 교체기 인터페이스로 나뉘는데, 구체적으로 교체기, 용기, 구체적으로 실현된 용기로 나뉜다.

장면 작업

  • 한 대상 내부의 요소에 접근하여 내부 세부 사항을 노출하지 않음
  • 여러 대상의 내부 요소를 확보하고 통일된 인터페이스 접근
  • 을 제공한다.

    코드 예


    (1) 교체기 인터페이스

    public interface Iterator {
        boolean hasNext();
    
        Object next();
    }
    
    

    (2) 구체적인 교체기

    public class ConcreteIterator implements Iterator {
    
        private int position;
        private List list = new ArrayList();
    
        public ConcreteIterator(List list){
            this.list = list;
        }
    
        @Override
        public boolean hasNext() {
            if (position == list.size()) {
                return false;
            } else {
                return true;
            }
        }
    
        @Override
        public Object next() {
            Object obj = null;
            if(this.hasNext()){
                obj = this.list.get(position++);
            }
            return obj;
        }
    }
    
    

    (3) 용기 인터페이스

    public interface Aggregate {
        void add(Object obj);
    
        void remove(Object obj);
    
        Iterator iterator();
    }
    

    (4) 구체적인 용기

    public class ConcreteAggregate implements Aggregate {
    
        private List list = new ArrayList();
    
        public void add(Object obj) {
            list.add(obj);
        }
    
        public Iterator iterator() {
            return new ConcreteIterator(list);
        }
    
        public void remove(Object obj) {
            list.remove(obj);
        }
    
    }
    

    호출 방식

       Aggregate aggregate=new ConcreteAggregate();
            aggregate.add("1");
            aggregate.add("2");
            aggregate.add("3");
            aggregate.add("4");
            aggregate.add("5");
            aggregate.add("6");
            Iterator iterator = aggregate.iterator();
            while (iterator.hasNext()){
                System.out.println("
    "+iterator.next()); }

    결과 표시

    1
    
    2
    
    3
    
    4
    
    5
    
    6
    

    총결산

  • 이점
  • 스트리밍 조작을 간소화하고 특히 대상의 요소에 대한 스트리밍 획득
  • 외부 호출은 교체기만 있으면 되고 내부 구체적인 스트리밍 방식은 관심을 필요로 하지 않으며 복잡한 스트리밍에 적용된다
  • 단점
  • 간단하게 훑어보면 오히려 조작이 증가한다. 예를 들어 수조와 질서 목록
  • 분류 추가

  • github 주소

    좋은 웹페이지 즐겨찾기