Я бы подумал, что что-то вроде этого будет намного лучше, так как вы добавляете переменную, так почему бы не ограничить доступ и сделать его более чистым? Ваши геттеры/сеттеры должны делать то, что они говорят на олове.
public abstract class ExternalScript extends Script {
private String source;
public void setSource(String file) {
source = file;
}
public String getSource() {
return source;
}
Возвращаясь к этому вопросу, вы когда-нибудь задумывались о том, где он читает код получателя/сеттера? Если все они получают и устанавливают, вам не нужно беспокоиться о том, что функция «делает» при чтении кода. Есть несколько других причин, чтобы думать о слишком:
- Если источник был защищен (так доступны подклассов), то код получает грязный: кто изменяющие переменные? Когда это объект, он становится тяжелым, когда вам нужно реорганизовать, тогда как метод имеет тенденцию облегчать этот шаг.
- Если ваши методы getter/setter не получают и не устанавливают, то описывайте их как нечто другое.
Всегда думайте, действительно ли ваш класс или нет, и это должно помочь решить, нужно ли вам что-то еще.