Я работаю над классом 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}
Это хорошо, потому что это явно сеттер, но, подумав, я думаю, это тоже может сбить с толку: пользователь может подумать, что поля содержат только значения :left
и :right
, что неправильно. Другой вариант - исключить =
и сделать его обычным методом:
chart.margins(:left => 10, :right => 15)
С помощью этого синтаксиса легко понять, что происходит, но он не является стандартным установщиком и конфликтует с margins
геттером. И есть еще один вариант:
chart.margins(:left, 10)
chart.margins(:right, 15)
Я не знаю, что об этом думать. Для меня очевидно, что метод является установщиком, но на этот раз я не могу установить несколько значений одним вызовом, и снова возникает проблема с геттером. Я относительно новичок в Ruby и еще не привык ко всем идиомам. Итак, что вы думаете, ребята? Какой самый лучший вариант?