닭발개발

[헤드퍼스트 디자인패턴] 26일차. 346-360pg 본문

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

[헤드퍼스트 디자인패턴] 26일차. 346-360pg

D269 2023. 5. 31. 01:56
728x90

26일차

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

346-360pg

요약

CHAPTER 08. 알고리즘 캡슐화하기 (feat. 템플릿 메소드 패턴)

  • 서브클래스에서 언제든 필요할 때마다 알고리즘을 가져다가 쓸 수 있도록 캡슐화한다.

[ 객체지향 원칙 추가+ ]

  • 먼저 연락하지 마세요. 저희가 연락드리겠습니다. : 슈퍼클래스에서 모든 것을 관리하고 필요한 서브 클래스를 불러서 써야 한다.

[ 객체지향 패턴 추가+ ]

  • 템플릿 메소드 패턴 : 알고리즘의 골격을 정의한다. 템플릿 메소드를 사용하면 알고리즘의 일부 단계를 서브클래스에서 구현할 수 있으며, 알고리즘의 구조는 그대로 유지하면서 알고리즘의 특정 단계를 서브 클래스에서 재정의 할 수도 있다.

 


 

 

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

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

[ 객체마을 식당과 팬케이크 하우스 합병 ]

  • 루 : 메뉴에 새로운 항목을 추가하기 쉽게 하려고 ArrayList 사용
  • 멜 : 메뉴에 들어가는 항목의 최대 개수를 딱 정해 놓고 배열을 쓴다. - MenuItem 그대로 사용 가능.
  • 자바 종업은은 항상 두 메뉴를 사용하고, 각 항목에서 반복작업을 수행하려면 2개의 순환문을 써야한다.
  • 해결 → 각 메뉴에 똑같은 인터페이스르 구현할 수 있다면?

[ 반복을 캡슐화 하기 ]

  • 객체 컬렉션의 반복 작업 처리 방법을 캡슐화한 Iterator라는 객체 만들기

발췌

💡 템플릿 메소드는 클래스에서 알고리즘을 구현하면서 일부 단계를 서브클래스에게 떠넘길 수 있습니다.

 

 

 

 

728x90
반응형