The following text is a partial translation of the original English article, performed by ChatGPT (gpt-3.5-turbo) and this Jekyll plugin:
Если мы согласимся, что все локальные переменные должны быть final
, необходимо избегать множественных return
и временной связи между операторами—мы можем полностью избавиться от переменных и заменить их встроенными значениями и их именами.
Вот код из раздела 5.10 (Алгоритмы) моей книги Элегантные объекты:
Обратите внимание на переменную secret
. Она существует здесь, потому что нам нужно ее значение дважды: во-первых, как аргумент конструктора для Diff
, во-вторых, как аргумент конструктора для Farewell
. Мы не можем встроить значение, создав два отдельных экземпляра класса Secret
, потому что это действительно должен быть один и тот же объект — он инкапсулирует число, которое мы скрываем от пользователя в игре угадывания числа.
Могут быть и другие ситуации, когда значение нужно использовать несколько раз, оставаясь при этом неизменным. Почему мы все еще называем эти значения переменными, если технически они являются константами?
Я предлагаю ввести “имена” для этих значений, присваивая их с помощью ключевого слова as
. Например:
Здесь new Secret()
- это встроенное значение, а secret
- его моникер, который мы используем через несколько строк.
Было бы здорово иметь эту функцию в Java, верно?
Translated by ChatGPT gpt-3.5-turbo/42 on 2023-11-18 at 05:07