런타임노트

[헤드퍼스트 디자인패턴] 28일차. 374-386pg 본문

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

[헤드퍼스트 디자인패턴] 28일차. 374-386pg

D269 2023. 6. 1. 16:14
728x90

28일차

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

374-386pg

요약

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

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

[ 단일 역할 원칙 ]

  • 어떤 클래스가 바뀌는 이유는 하나뿐이어야 한다.

[ Iterable 인터페이스 ]

  • Iterator 인터페이스를 구현하는, 반복자를 리턴하는 iterator() 메소드가 들어있다.
  • 컬렉션에 있는 항목을 대상으로 반복작업을 수행하는 방법을 제공하는 forEach() 메소드가 기본으로 포함된다.

[ 향상된 for 순환문 사용시 주의사항 ]

  • 배열은 Iterable 인터페이스를 구현하지 않는다.

[ 정리 ]

  1. 메뉴항목이 서로 다른 방식으로 구현되었기 때문에 서로 다른 인터페이스를 써서 반복작업 처리
  2. 종업원에게 반복자를 준다. 그 반복자는 반복작업을 수행할 객체 그룹종류를 대상으로 삼는다.
  3. 종업원은 우리가 어떤 구현을 사용했는지 신경 안써도 됨: Iterator 인터페이스를 써서 메뉴 항목을 대상으로 반복작업을 처리하면 됨 → 종업원은 컬렉션 구현과 분리됨.
  4. 종업원의 확장성 강화
    • 반복자를 사용해서 종업원을 메뉴 항목 구현으로부터 분리→ 언제든지 원하는 메뉴 간단하게 추가 가능

 

 

 

728x90
반응형