Вы должны указать, с каким языком вы имеете дело, так как это повлияет на ответ.
Ваша первая мысль должна быть об API для вашего класса. Если вы хотите, чтобы этот API-интерфейс был стабильным (и вы должны это делать!), Подумайте, как можно позже преобразовать простую переменную в полноценный метод.
Во многих языках вы не можете изменить переменную на метод без изменения вызывающего кода. C, C ++ и Java попадают в эту категорию. Никогда не используйте публичные переменные в этих языках, потому что у вас не будет места для маневра в дальнейшем.
В Python вы можете изменить переменную на свойство, не меняя вызывающих, так что вам не нужно беспокоиться заранее: используйте публичные переменные.
C # Я считаю, что имеет свойства, которые позволяют прозрачно изменять переменные в методы, но я не уверен.