在委派方法

时间:2015-11-30 20:51:07

标签: ruby

我正在使用#call方法处理一个非常简单的类。 #call需要一个哈希,我已将其程序集委托给另一个方法,以便将问题分开。

然而,这导致了一种传递情况,其中#call接受它传递给散列汇编方法的参数。这有两个原因:1)#call#params具有相同的方法签名,2)#call接受它不直接使用的参数。虽然我不能遵循特定的规则/最佳做法,但这违背了我的头脑。

class Foo

  def initialize(init_var)
    @init_var = init_var
  end

  def call(call_var)
    Bar.do_stuff(params(call_var))
  end

  private

  attr_reader :init_var

  def params(call_var)
    {
      static: 'static',
      init_var: init_var,
      call_var: call_var
    }
  end
end

我想知道的是:

1)这实际上是代码气味还是我是偏执狂? 2)如果没有,是否有可能开始成为一个的情况? 3)如果是,我怎么能重构它?

0 个答案:

没有答案