Нужно только взглянуть на само название ... «Недвижимость». Что это значит? Словарь определяет его по-разному, но в этом случае «существенный или отличительный признак или качество вещи» подходит лучше всего.
Подумайте о цели действия. Вы на самом деле изменяете или восстанавливаете «существенный или отличительный признак»? В вашем примере вы используете функцию для установки свойства текстового поля. Это глупо, не правда ли?
Свойства действительно являются функциями. Все они компилируются в getXXX () и setXXX (). Он просто скрывает их в синтаксическом сахаре, но это сахар, который придает смыслу смысл процесса.
Думайте о свойствах как атрибуты. У машины много атрибутов. Цвет, MPG, модель и т. Д. Не все свойства являются настраиваемыми, некоторые являются расчетными.
Между тем, Метод - это действие. GetColor должен быть свойством. GetFile () должен быть функцией. Еще одно практическое правило: если это не меняет состояние объекта, то это должна быть функция. Например, CalculatePiToNthDigit (n) должна быть функцией, потому что она фактически не изменяет состояние объекта Math, к которому она присоединена.
Возможно, это немного бессвязно, но на самом деле все сводится к решению, какие у вас объекты и что они представляют. Если вы не можете понять, должно ли это быть свойство или функция, возможно, не имеет значения, какое именно.