Лучше ли связывать вызовы методов или вводить промежуточную переменную? - PullRequest
2 голосов
/ 02 марта 2012

Например, 2 вызова метода:

myMethod(getHtmlFileName());

или

String htmlFileName=getHtmlFileName();
myMethod(htmlFileName);

, что является лучшим способом, исключить меньшее количество операций ввода в первом случае?

Ответы [ 4 ]

3 голосов
/ 02 марта 2012

Если вы собираетесь использовать возвращаемое значение метода более чем в одном месте, сохранение его в переменной и использование этой переменной в вашем коде может быть более практичным, читаемым и легко отлаживаемым, чем вызов метода каждый раз:

String htmlFileName = getHtmlFileName();
myMethod(htmlFileName);
....
myMethod(htmlFileName + "...");
2 голосов
/ 02 марта 2012

Второй подход поможет вам отладить возвращаемое значение getHtmlFileName (), но, кроме этого, ни один подход не лучше, чем другой в абсолютном смысле. Это вопрос предпочтений и, возможно, контекста, я бы сказал. В этом конкретном случае я бы пошел на первый подход, но если бы вы комбинировали несколько методов, я бы пошел на второй, для удобства чтения, например ::100100

String first = firstMethod();
String second = secondMethod(first);
String third = thirdMethod(second);

вместо

thirdMethod(secondMethod(firstMethod()));

РЕДАКТИРОВАТЬ: Как уже отмечали другие, если вы собираетесь использовать значение более чем в одном месте, то, очевидно, вы будете использовать второй подход и сохранить ссылку на значение для дальнейшего использования.

1 голос
/ 02 марта 2012

Вероятно, это будет зависеть от контекста. Если вы собираетесь использовать переменную htmlFileName в другом месте блока кода, вам, вероятно, следует хранить локальную переменную (особенно в случае некоторых тяжелых вызовов методов):

String htmlFileName=getHtmlFileName();
myMethod(htmlFileName);

, если это одноразовый звонок,

myMethod(getHtmlFileName());

, вероятно, более элегантно и легко читается.

0 голосов
/ 02 марта 2012

Если позднее вы используете возвращаемое значение getHtmlFileName (), и если возвращаемое значение является фиксированным, вы захотите использовать первую форму, то есть назначить локальную переменную и использовать ее повторно, и, таким образом, избежать избыточных вызовов / создания объектов.

В противном случае (например, если вы вызываете метод getHtmlFileName только один раз, вы захотите использовать первую форму, которая является более краткой и избегает бесполезного присвоения локальной переменной, но если вы все еще используете, никакого реального вреда нетвторая форма (например, для отладки).

...