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