Composite Pattern

SangHyun-Park·2022년 3월 20일
0

Composite Pattern

객체 그룹을 조작하는 것처럼 단일 객체를 조작한다

단일 객체와 복합 객체(Singe / Group) 의 기능이 유사할 때 사용할 수 있는 패턴

Component 라는 공통성을 띄는 행동(operation) 을 정의하고 이를 구현한 객체를 만드는 방식

보통 File - Directory 구조에서 사용된다.

본 코드에서는 Directory 와 File 의 구조를 표현했으며 Dir 의 operation 이 동작하면,

Dir 을 포함한 자식들 또한 동일한 동작을 수행하는 구조이다.

보편적으로 부모 Directory 의 경로를 수정하면 자식 File 및 DIR 또한 경로가 수정되는 것이 그 예 인데, 자세히 살펴보면

  • 객체 그룹(폴더) 의 경로 이동
  • 단일 객체(부모 폴더의 하위 폴더 혹은 파일) 의 경로 이동

이 두가지 행동이 동시에, 그리고 "경로 이동" 이라는 동일한 행동이 수행됨을 알 수 있다.

동시에, 같은 행동은 Compostie Pattern 을 떠올리면 좋을 듯 하다. 단 생각해보면 자주 Has a 관계로써 사용되는 객체간에 유용하다는 것을 알 수 있다.

아래는 해당 로직을 구현하고 실행한 결과이다. 동일한 operation 을 수행하는 것을 확인할 수 있다.

profile
https://ppaksang.tistory.com/ 옮겼습니다 !!

0개의 댓글