2013-10-07 3 views
-1

только для того, чтобы прояснить, что рекомендуется устанавливать поля классов как частные, а затем устанавливать открытый набор и получать методы для изменения значений и получать их (печатать их и т. Д.)? JUst, так что я знаю, что я читал в своей книге, это может быть плохой практикой, чтобы объявить мои поля общедоступными ...Устанавливать и получать методы

ответ

0

Причина, по которой у вас есть геттеры и сеттеры, позволяет потенциально вводить логику в их в будущем.

Если ваш код уже использует геттеры и сеттеры вместо того, чтобы просто обращаться к полям напрямую, чем вставлять логику в ваши геттеры/сеттеры, вы не нарушаете другие программы, которые используют ваш код.

, например, вы можете изменить

private i 

public set_i(int x) 
{ 
    i = x; 
} 

в

private i 

public set_i(int x) 
{ 
    if(x < 0) 
     i = 0; 
    else 
     i = x; 
} 
0

Короче, да. Это изолирует потребителя от изменений в реализации позже. Сначала это похоже на перетаскивание, но это всего лишь небольшое количество работы с шаблонами. И он сохраняет парадигму get/set в соответствии с методами, которые на самом деле делают что-то нетривиальное.

0

Если вы не собираетесь внедрять или добавлять к текущему методу Set или Get normal, просто не используйте их и не используйте public вместо этого, но для других целей, таких как пользовательские, используется другое поведение или функциональность.

0

Если вы спрашиваете, почему это хорошо, чтобы использовать сеттер и добытчик, которые я предполагаю, что вы, это хорошо в течение нескольких причин:

  • Вы можете хранить логику в них, которые могут использоваться несколько классы.
  • Переменная может быть только для чтения или только для записи (улучшает безопасность кода).
+0

И это может облегчить отладку, поскольку вы можете легко проверить, откуда установлена ​​переменная. –

Смежные вопросы