Лекция: INLINE METHOD (ВСТРАИВАНИЕ МЕТОДА)
Каким образом можно упростить кол в случае» если становится сложно уследить за последовательностью передачи управления от метода к методу? Замените обращение к методу ходом этого метода.
Как
1. Скопируйте код метода в буфер обмена.
2. Вставьте код метода вместо обращения к методу.
3. Замените все формальные параметры фактическими параметрами. Если, например, вы перелаете reaoer.getNextO, то есть выражение, обладающее побочным эффектом, будьте осторожны и присвойте полученное значение временной переменной.
Зачем
Важно понимать. что при помоши Inline Method (Встраивание метода) вы можете экспериментировать с последовательностью выполнения действий. Когда я выполняю рефакторинг. я формирую у себя в голове мысленную картину системы с кусками логики и потоком выполнения программы, перетекающим ог одною обтлкта к другому объекту. Когда мне кажется, что я вижу нечто многообещающее,я использую рефакторинг для того, чтобы попробовать это и увидеть результат.
В разгаре битвы я могу вдруг обнаружить, что попался в ловушку собственной гениальности. (Я не буду говорить, насколько часто это происходит.) Когда этч> происходит, я использую Inline Method (Встраивание метода) для того, чтобы разобраться в ТОЙ путанице, которую я создал. «Так. этот объект обращается к этому, этот к этому… не могу понять, что же здесь происходит?» Я встраиваю несколько уровней абстракции и смотрю, что же на самом деле происходит. После этого я могу заново выделить абстракцию, используя более удобный способ.