Вопрос, возможно, глупый, но всё же... Нужны ли геттеры и сеттеры для статических полей, или их лучше объявлять 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), тогда имеет смысл использовать приватное поле и геттер, который возвращает копию объекта.
Комментариев нет:
Отправить комментарий