관리 메뉴

caLAB

[개발] Behaviours Design Pattern - Visitor Pattern, Iterator Pattern 본문

개발 공부/컴퓨터 과학

[개발] Behaviours Design Pattern - Visitor Pattern, Iterator Pattern

도이(doi) 2022. 5. 11. 14:04
728x90

Visitor Pattern

오브젝트가 존재하고 오브젝트를 다루는 알고리즘 클래스를 분리하는 것

알고리즘 클래스는 visitor가 되고 기존에 오브젝트에 알고리즘 클래스가 visitor로 방문해서 수행

이미 존재하는 클래스나 오브젝트에 새로운 알고리즘을 기존 오브젝트에 적용할 수 있음

cat에 visitor클래스를 받는 accept 함수 존재
visitor pattern 기본 코드
클라이언트 코드

고양이의 클래스 구조를 바꾸지 않고 고양이 클래스에 대한 함수들을 implement 함

*함수형 프로그래밍

모던 c++ 람다(함수형)

 

프로퍼티만 존재하는 오브젝트를 만들면 됨. struct / Interface를 사용하여 오브젝트를 생성. 

오브젝트를 다룰 함수만 만들면 오브젝트들의 implementation을 바꾸지 않고 여러 알고리즘을 적용할 수 있음.

 

Iterator Pattern

여러 타입의 컨테이너들에 access를 가능하게 해주는 공통된 interface 제공

*언어별로 제공해주는 iterator interface 사용을 추천함. 

 

728x90
반응형
Comments