Является ли группирование вашего кода подтверждения одним методом Ruby плохой идеей? - PullRequest
2 голосов
/ 03 июня 2010

Представьте, что у меня есть такой класс:

class A
   attr_accessor :a
   attr_accessor :b

   def check
      raise "a must meet some condition" if !condition(@a)
      raise "b must meet some condition" if !condition(@b)
   end

   def do_some_work
      check()
      # more work here
   end

   def do_some_more_work
      check()
      # other work here
   end
end

Разве плохая практика - иметь предварительные условия для методов доступа внутри другого метода, а не текущего?

1 Ответ

3 голосов
/ 03 июня 2010

Было бы лучше проверить, когда происходит назначение . Сбой быстро.

class A
  attr_reader :a, :b

  def a=(new_a)
    raise "a must meet some condition" if !condition(@a)
    @a = new_a
  end

  def b=(new_b)
    raise "b must meet some condition" if !condition(@b)
    @b = new_b
  end

  def do_some_work
    # Do the work, knowing @a and @b are valid
  end

  # ...
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...