016-003-011
テンプレートメソッドパターン
上級
問題説明
テンプレートメソッドパターン
この問題では: 抽象クラス DataProcessor にテンプレートメソッドパターンを実装し、処理の骨格を定義しながらサブクラス CsvProcessor と JsonProcessor で具体的な処理を提供するプログラムを作成します。
学習目標: テンプレートメソッドパターンによる抽象クラスの設計手法を理解する
概要
DataProcessor 抽象クラスは process() メソッドで処理の骨格(読込→変換→出力)を定義します。各ステップは抽象メソッドとしてサブクラスに委譲します。
仕様
DataProcessor抽象クラス:process(): テンプレートメソッド(readData()→transformData()→writeData()を順に呼ぶ)readData(): 抽象メソッド(データ読込のステップを出力)transformData(): 抽象メソッド(データ変換のステップを出力)writeData(): 抽象メソッド(データ書込のステップを出力)
CsvProcessor: 各ステップで CSV 形式の処理内容を出力JsonProcessor: 各ステップで JSON 形式の処理内容を出力- Mainクラスで両方の
process()を呼び出す
出力形式
--- CSV Processing ---
Reading CSV file
Converting CSV to records
Writing records to database
--- JSON Processing ---
Reading JSON file
Parsing JSON to objects
Writing objects to API
