ObjectA a = getTheUser(session.getState().getAccount().getAccountNumber());
Это плохой пример, возможно, потому, что вы только что написали что-то из головы.
Вы присваиваете переменной с именем a
типа ObjectA
возвращаемое значение функции с именем getTheUser
.
Итак, давайте предположим, что вы написали это вместо:
User u = getTheUser(session.getState().getAccount().getAccountNumber());
Я бы разбил это выражение так:
Account acc = session.getState().getAccount();
User user = getTheUser( acc.getAccountNumber() );
Я рассуждаю так: как бы я подумал о том, что я делаю с этим кодом?
Я, вероятно, подумал бы: «сначала мне нужно получить учетную запись из сеанса, а затем я получу пользователя, используя номер этой учетной записи».
Код должен читаться так, как вы думаете. Переменные должны относиться к основным вовлеченным объектам; не так сильно, как их свойства (поэтому я не буду хранить номер счета в переменной).
Второй фактор, который нужно иметь в виду: мне когда-нибудь понадобится снова обратиться к этой сущности в этом контексте?
Если, скажем, я вытаскиваю больше вещей из состояния сеанса, я бы ввел SessionState state = session.getState()
.
Все это кажется очевидным, но я боюсь, что мне трудно выразить словами, почему это имеет смысл, не будучи носителем английского языка и все такое.