Есть ли разница в классе и локальном экземпляре, когда первый не является обязательным (обычно, когда я могу их завершить)? Должен ли я следовать «правилу»?Класс против локального экземпляра
У меня была привычка всегда создавать экземпляры других классов с использованием экземпляра класса, и я не знаю, плохо ли это.
public class aService {
private final SomeClass someClass = new SomeClass();
public void someMethod() {
someClass.doSomething();
}
}
// or
public class aService {
public void someMethod() {
SomeClass someClass = new SomeClass();
someThing.doSomething();
}
}
это зависит от того, что делает и делает someClass. Есть ли на нем какое-либо состояние или оно неизменное? –
Это не совсем то же самое, но когда это не имеет значения, тогда первая версия лучше, потому что вам нужно создать объект только один раз для одного объекта, а не один раз для вызова метода. – maraca
* Значительная * разница между этими двумя заключается в том, что в первом примере у вас будет доступ к переменной, называемой 'someClass' во всех областях, тогда как во втором примере' someClass' исчезает, как только 'someMethod' заканчивается выполнения. В таком случае вы задаете свой вопрос о жизненном цикле этой переменной? – Makoto