ruby方法 - 如何减少方法中params的数量?

Mic*_*ant 3 ruby parameters optimization

我知道更少的参数更好,超过2(或3或4,取决于文献)是代码气味.

如果我有代码与params,如下所示:

class DoubleSeries
  def self.generate_sequences(seq1_start, seq2_start, seq1_step, seq2_step, iterations)
    seq1,seq2=seq1_start,seq2_start
    result=[]
    (1..iterations).each do
      result << seq1 << seq2
      seq1+=seq1_step
      seq2+=seq2_step
    end
    result
  end
end
Run Code Online (Sandbox Code Playgroud)

当它们全部提供功能时,如何减少5个参数的数量?

dep*_*epa 6

我想如果你想严格遵守Sandi Metz的规则,那么OOP方式就是你要走的路.

class Sequence
  attr_reader :start, :step

  initialize(start, step)
    @start = start
    @step = step
  end
end

sequence_1 = Sequence.new(seq1_start, seq1_step)
sequence_2 = Sequence.new(seq2_start, seq2_step)

class DoubleSeries
  def self.generate_sequences(sequence_1, sequence_2, iterations)
    item_1, item_2 = sequence_1.start, sequence_2.start
    result=[]
    iterations.times do
      result << item_1 << item_2
      item_1 += sequence_1.step
      item_2 += sequence_2.step
    end
    result
  end
end
Run Code Online (Sandbox Code Playgroud)

[我的代码(迈克尔):

在此输入图像描述