반응형

 

 

 

 

 

 

 

예를들어 list 의 경우

 

list 내부에 포인터를 두면 멀티플(멀티 쓰레드)로 list 에 접근할때 오류가 생길 수 있는데

 

이것을 객체로 두면 멀티플로 접근이 가능해진다

 

즉 접근 포인터를 객체로 둔것이 iterator 패턴이다

 

 

굳이 필요한 상황 아니면 type<T>::iterator it; 쓰는게 났다

 

 


 

 

 

리스트자체에서 리스트에 대한 이터레이터를 만들때의 구현

( iterator 가 없어질때 List 를 동적 또는 정적 할당 하지 않았음으로 삭제 과정은 필요 없고 new 한 Listiterator 만 삭제 하면 된다

pListiter 으로 함수 안에서 생성된 list 를 다룰 수 있다

 

ListIterator* pListiter = list.createiterator();

 

했을때..

 

       iterater* createiterator(){

            return new ListIterator(this);   // this 는 리스트의 주소

       }

 

 

 

class ListIterator: public Iterator {
  public :
    ListIterator(LinkedList* pList){  this->pList = pList;  }

 

  private :
    LinkedList* pList_;
};

 

반응형

'디자인패턴과방법론 > 디자인패턴' 카테고리의 다른 글

Observer 패턴  (0) 2012.11.02
memento 패턴  (0) 2012.11.02
interpreter 패턴  (0) 2012.11.02
command 패턴  (0) 2012.11.02
chain of responsibility 패턴  (0) 2012.11.02

+ Recent posts