Я работаю на 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, и я еще не привык ко всем идиомам. Итак, как вы думаете, ребята? Какой из лучших вариантов?
Я не понимаю вашу озабоченность «пользователь может подумать, что поля содержат только: слева и справа». Как это отличается, когда вы используете синтаксис chart.marings (: left, 10)? – phtrivier
Приятно, я пойду с решением парадигмы, добавив сахар Дуглы для маркерного сеттера в простых случаях. Спасибо вам всем! –