現在、プロジェクトにBuilderパターンのインスタンスがあります。現在、サポートされている出力形式はCSVですが、YAMLを含めたいと思います。簡単だと思いました。タイプを変更するためのすべてのサポートコードがあります。
私は自分自身が少し複雑になっていることに気づいています。Builderパターンを使用する目的は、出力ファイルを段階的に作成することでした。私には、これはYAMLと直接矛盾しているように見えます-すべてのオブジェクトを配列に入れて、YAML :: dump()を呼び出します。
良いニュースは、私がそれらのオブジェクトの配列を持っているということです。ディレクターに渡されます。これは、Directorのconstruct()メソッドからのスニペットです。
def construct(aDataAccessObjectCollection)
@daos = aDataAccessObjectCollection
result = ''
@daos.each do |dao|
@builder.build_food_name(dao.get_property('name'))
@builder.build_calories(dao.get_property('calories'))
@builder.build_keywords(dao.get_property('keywords'))
result += (@builder.get_result + "\n")
@builder.flush
end
File.open(@file_name, 'w') do |file|
file.write(result)
end
end
CSV形式とYAML形式の両方に対応する方法がわかりません。何か案は?