Шаблон Builder в рубине с YAML - PullRequest
       13

Шаблон Builder в рубине с YAML

0 голосов
/ 14 октября 2010

У меня есть экземпляр шаблона Builder в моем проекте прямо сейчас.В настоящее время поддерживаемый формат вывода - CSV, однако теперь я хотел бы включить YAML.Полегче, подумал я.У меня есть весь поддерживающий код для изменения типа.

Я чувствую себя немного сложным.Целью использования шаблона Builder было пошаговое создание выходного файла.Мне это кажется прямо противоречащим YAML - соберите все свои объекты в массив и вызовите YAML :: dump ().

Хорошая новость в том, что у меня есть массив этих объектов.Это передается в директора.Вот фрагмент из метода construct () объекта Director.

  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.Есть идеи?

1 Ответ

1 голос
/ 15 октября 2010

Я предлагаю быть осторожным, чтобы не впасть в то, что раньше называлось «паралич анализом». Шаблоны полезны, вплоть до того момента, когда они затрудняют выполнение того, что вам нужно. По словам Уэйна, "Я говорю, бросай!" - или, более конкретно, бросьте массив объектов в YAML и получите ваш вывод. Если перефразировать плохо: «Если ваш код извергается, и вы получаете вывод, вы золотой. Но если шаблон ничего вам не дает, он никогда не должен был быть».

Взгляд - шаблоны являются одной из великих идей - они дают практическое руководство о том, как справляться с общими ситуациями , которые часто плохо обрабатываются . Они могут помочь сделать код лучше. Они могут помочь сделать код (смею ли я сказать это?) Красивым. Но, знаете, бывают случаи, когда вам приходится закатывать рукава, держать нос и просто делать то, что нужно, чтобы выполнить работу. Кроме того, если вы «просто делаете это», вы можете получить представление о том, как «просто сделать это лучше » - и тем временем у вас будет что-то, что работает.

Вечеринка на ...

...