런타임노트

[헤드퍼스트 디자인패턴] 30일차. 399-414pg 본문

책책책 책을 읽읍시다‼ ver.개발/[ 헤드퍼스트 디자인패턴 ]

[헤드퍼스트 디자인패턴] 30일차. 399-414pg

D269 2023. 6. 6. 00:22
728x90


30일차


헤드퍼스트 디자인패턴 [5주차_토요일]

399-414pg

요약


**CHAPTER 09. 컬렉션 잘 관리하기 (feat. 반복자 패턴과 컴포지트 패턴)**

- 객체 저장방식을 보여 주지 않으면서도 클라이언트가 객체에 일일이 접근할 수 있게 해 주는 방법

[ 컴포지트 패턴 ]
- 컴포지트 패턴에서는 단일 역할 원칙을 깨는 대신 투명성을 확보하는 패턴이다.
- 투명성(transparency)
    - Component 인터페이스에 자식들을 관리하는 기능과 잎으로써의 기능을 전부 넣어서 클라이언트가 복합 객체와 잎을 똑같은 방식으로 처리할 수 있도록 만들 수 있다. 어떤 원소가 복합 객체인지 잎인지가 클라이언트에게는 투명하게 보인다는 점.
- 부분-전체 계층구조를 가진 객체 컬렉션에서 그 객체들을 모두 똑같은 방식으로 다루고 싶을 때 쓰이는 패턴

[ 객체지향 원칙 추가 + ]
어떤 클래스가 바뀌는 이유는 하나 뿐이어야 한다.

[ 객체지향 패턴 추가 + ]
- 반복자 패턴 : 컬렉션의 구현 방법을 노출하지 않으면서 집합체 내의 모든 항목에 접근하는 방법 제공
- 컴포지트 패턴 : 객체를 트리구조로 구성해서 부분-전체 계층구조를 구현.

발췌

💡 컴포지트 패턴 : 객체를 트리구조로 구성해서 부분-전체 계층구조(part-whole hierarchy)를 구현한다.





728x90
반응형