Java. Рефакторинг во время усовершенствования.

Рефакторинг в Java представляет собой процесс изменения структуры существующего кода без изменения его функциональности. Ваше приложение должно выдавать такие же результаты и после рефакторинга, но код должен стать яснее, понятнее, с меньшим количеством дублирований.

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

Прежде всего, мы должны создать метод, содержащий две строки дублированного кода. Назовем его addToWallet() :

protected void addToWallet(int bill) {
	Integer boxedBill = new Integer(bill);
	wallet.add(boxedBill);		
}

Мы сделали этот метод защищенным, поскольку это действительно наш собственный внутренний вспомогательный метод, а не часть открытого интерфейса нашего класса. Теперь заменим эти строки кода в наших методах вызовом нового метода:

public void addMoney(int bill) {
	addToWallet(bill);
}

Вот перегруженная версия:

public void addMoney(int[] bills) {
	for (int i = 0; i < bills.length; i++) {
		int bill = bills[i];
		addToWallet(bill);
	}
}

Если вы опять выполните код, вы увидите те же самые результаты. Такой тип рефакторинга должен стать привычным. Eclipse облегчает работу при помощи нескольких встроенных видов автоматического рефакторинга. Их подробное обсуждение выходит за рамки данного руководства, но вы можете поэкспериментировать с ними.

Если бы мы выделили эти две строки дублированного кода, допустим в первой версии addMoney() , то могли бы щелкнуть правой кнопкой мыши по выделенному тексту и выбрать Refactor>Extract Method. Тогда Eclipse мог бы провести нас через процесс рефакторинга в пошаговом режиме. Это одна из наиболее мощных возможностей IDE.

Рейтинг
( Пока оценок нет )
Загрузка ...