Ruby中的生成器模式与YAML

我现在在项目中有一个Builder模式的实例。目前,支持的输出格式是CSV,但我现在想要包含YAML。很简单,我想。我有所有支持代码来进行类型更改。 我发现自己有点复杂。使用Builder模式的目的是逐步构造输出文件。对我来说,这似乎与YAML直接矛盾 - 将所有对象都放入一个数组中并调用YAML :: dump()。 好消息是我确实有一系列这些对象。它被传递给Director。 这是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格式。有任何想法吗?     
已邀请:
我建议小心不要陷入过去被称为“分析瘫痪”的事情。模式是有用的,直到他们做你需要做的事情更难。用韦恩的世界的话来说,“我说要投掷!” - 或者更具体地说,将对象数组投掷到YAML并获取输出。严厉地说,“如果你的代码喷出并且你获得了你的输出,你就是金色的。但是如果这个模式什么都没有给你带来任何东西,那么它就永远不会是”。 外观 - 模式是伟大的想法之一 - 它们提供了如何处理常常处理不当的常见情况的实用指导。他们可以帮助改善代码。他们可以帮助制作代码(我敢说吗?)美观。但是,你知道吗,有时你必须卷起袖子,捏住鼻子,然后尽力完成工作。此外,如果你“只是做”,你可能会深入了解如何“做得更好” - 同时你会有一些有用的东西。 派对...     

要回复问题请先登录注册