템플릿/콜백의 작업 흐름
![image.png](https://prod-files-secure.s3.us-west-2.amazonaws.com/a7e1e85e-d6f9-43d3-8475-0933babeaf4a/d63fd873-f2f7-440d-a9f3-df0d0a4b1d36/image.png)
클라이언트 코드의 책임
- 기본적으로 콜백을 생성하고 템플릿 안에 있는 메서드를 호출하는 작업을 함
- 서비스를 이용하는 주체
- 클라이언트가 템플릿의 메서드를 호출해서 자신이 원하는 기능을 수행하는데 특이하게도 다른 종류의 라이브러리를 사용하는 것과 달리 템플릿 안에서 사용되어지는 콜백 오브젝트를 클라이언트가 직접 만들거나 어디선가 가져와서 전달을 해줘야 됨
작업 흐름 순서
1. 콜백 생성
- 클라이언트가 템플릿 메서드로 호출하기 전에 파라미터로 전달될 콜백을 생성하는 작업 수행
- 람바를 이용하여 직접 생성 또는 다른 클래스로 만들어진 콜백 클래스의 인스턴스를 만들어서 전달
2. Callback 전달 / Template 호출
- 생성된 콜백으로 템플릿이 가지고 있는 메서드를 호출
- 템플릿을 다른 클래스로 분리하지는 않았으니 템플릿 역할을 하는 코드가 호출된다고 생각하면 됨
- 파라미터로 콜백 오브젝트를 전달
3. Worlkflow 시작
- 템플릿은 잘 변하지 않는 어떤 틀을 가진 코드를 실행하는 데 이걸 워크플로우라고 부를 수 있음
- 어떤 작업이 흘러가는 흐름을 관리하는 것이 템플릿