ExportService는 하나의 Exporter 역할만 의존한다

서비스는 final 역할 필드 하나를 가지고 Text·CSV·JSON 중 선택된 구현은 바깥 조립점에서 주입됩니다.

ExportServicefinal Exporter · 공통 실행

TextExporter

title=viewCount

CsvExporter

title,viewCount

JsonExporter

{...}

조립점

구현 선택·주입

핵심: 새 형식은 구현 클래스를 늘리지만 서비스 필드와 실행 분기를 늘리지 않습니다.