我正在研究一个Chart
类,它有一个参数,margin
它包含:top
、:bottom
和值。我的第一个选择是制作一个设置器并设置如下值::right
:left
margin
# Sets :left and :right margins and doesn't alter :top and :bottom
chart.margins = {:left => 10, :right => 15}
很好,因为它显然是一个 setter,但经过一番思考,我认为它也可能令人困惑:用户可能认为边距仅包含:left
和:right
值,这是不对的。另一种选择是消除=
并使其成为普通方法:
chart.margins(:left => 10, :right => 15)
使用这种语法,很容易弄清楚发生了什么,但它不是标准的 setter 并且与margins
getter 冲突。还有另一种选择:
chart.margins(:left, 10)
chart.margins(:right, 15)
我不知道该怎么想。对我来说,很明显该方法是一个 setter,但是这次我不能通过一次调用来设置多个值,并且 getter 又出现了问题。我对 Ruby 比较陌生,还没有习惯所有的习语。那么,小伙伴们怎么看呢?哪个是最好的选择?