Страницы

Поиск по вопросам

понедельник, 19 ноября 2018 г.

Геттеры и сеттеры для статических полей

Вопрос, возможно, глупый, но всё же... Нужны ли геттеры и сеттеры для статических полей, или их лучше объявлять public?
Т.е, какой из вариантов лучше?
1 вариант:
public abstract class SomeClass { public static boolean isReadOnly = false; }
и далее использовать SomeClass.isReadOnly = true;
2 вариант:
public abstract class SomeClass { private static boolean isReadOnly = false;
public static boolean isReadOnly() { return isReadOnly; }
public static void setReadOnly(boolean isReadOnly) { SomeClass.isReadOnly = isReadOnly; } }
и далее использовать SomeClass.setReadOnly(true);


Ответ

Область видимости поля нужно определять исходя из того, где оно будет использовано. (ваш К.О.)
В вашем случае с примитивным типом никакой разницы нет. Вы в обоих вариантах позволяете модифицировать переменную.
Если, к примеру, вам нужны какие-то дополнительные проверки при записи, тогда имеет смысл использовать приватное поле и сеттер. Или если у вас поле-объект и вы не хотите давать ссылку на него напрямую (как в случае с public), тогда имеет смысл использовать приватное поле и геттер, который возвращает копию объекта.

Комментариев нет:

Отправить комментарий