いくつかのミニパターンを探しています。プログラムは、さまざまな形式を入力としてサポートし、変換を適用して、最後のステップでそれらをデータベースにロードできる必要があります。
その主な目的は、テスト データを提供することです。
私の最初のアイデアは、さまざまなコンポーネントを次のように「接着」することでした。
汎用データソース [A] から [B] の反復子に抽出するエクストラクタ、[B] を [C] にマップするトランスフォーメータ、最後に [C] をデータベースにロードするステップがあります。これにアプローチするより良い方法があるに違いないと確信しています。これを達成するためのより良い、おそらくより一般的な方法はありますか?
trait Importer[A, B, C] {
val extractor: Extractor[A, B]
val transformer: Transformator[B, C]
val loader: Loader[C]
/**
* this is the method call for chaining all events together
*/
def importAndTransformData(dataSource: A): Unit =
{
/**
* extraction step
*/
val output = extractor.extract(dataSource: A)
/**
* conversion method
*/
val transformed = output map (transformer.transform(_))
/**
* loading step
*/
transformed.foreach(loader.load(_))
}
}
敬具、
ステファン