我正在使用#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)如果是,我怎么能重构它?