책너두 (헤드 퍼스트 디자인 패턴) 25일차 (~345p)

요약

  • 템플릿 메소드 패턴
    • 자바 API 속 템플릿 메소드 패턴 알아보기
    • 템플릿 메소드로 정렬하는 방법
    • 오리 정렬하기
      • 오리 대소 비교
    • 템플릿 메소드로 그래픽 출력하기

메모

자바 API 속 템플릿 메소드 패턴 알아보기

  • 야생에서도 이 패턴은 쉽게 발견할 수 있음.
    • 패턴 교과서의 예시와 다른 모양으로 구현한 템플릿 메소드도 많음.
    • 주의 깊게 살펴보면 템플릿 메소드임을 알 수 있음.
  • 이 패턴이 자주 쓰이는 이유는 프레임워크를 만드는 데 아주 훌륭한 디자인 도구이기 때문임.

템플릿 메소드로 정렬하는 방법

  • 자바의 Arrays 클래스에는 정렬할 때 쓸 수 있는 편리한 템플릿 메소드가 포함되어 있음.
    • mergeSort 메소드에 정렬 알고리즘이 들어있음
      • compareTo() 메소드에 의해 결과가 결정됨.
    • 이게 템플릿 메소드임.

오리 정렬하기

  • sort() 메소드는 서브 클래스를 만들지않고, 정적 메소드로 만듦.
    • sort() 자체가 특정 슈퍼클래스에 정의되어 있는 게 아니므로 sort() 메소드가 compareTo() 메소드를 구현했는지 알아야 함.
    • Comparable 인터페이스를 통해, compareTo() 메소드 하나만 구현하면 됨.

오리 대소 비교

  • 오리를 정렬하기 위해 compareTo()를 구현해야 함.

템플릿 메소드로 그래픽 출력하기

  • 야생의 템플릿 메소드로, JFrame 이 있음.
    • 가장 기본적인 스윙 컨테이너, paint() 메소드를 상속받는 컨테이너임.
    • paint() 를 오버라이드하면 특정 화면 영역에 특정 내용을 표시하는 JFrame 알고리즘에 사용자가 원하는 그래픽을 추가할 수 있음.

댓글

Designed by JB FACTORY