После извлечения метода, компиляции и запуска тестов, переносим метод в Rental и снова запускаем компиляцию и тесты. Рифэкторинг лучше всего делать небольшими шагами. Так меньше шансов сделать что-то неправильно.
class Customer... public String statement() { double totalAmount = 0; int frequentRenterPoints = 0; Enumeration rentals = this.rentals.elements(); String result = "Rental Record for "+getName()+"\n"; while( rentals.hasMoreElements()) { double thisAmount = 0; Rental each = ( Rental) rentals.nextElement(); frequentRenterPoints += each.getFrequentRenterPoints(); // show figures for this rental result += "\t"+each.getMovie().getTitle()+"\t"+ String.valueOf( each.getCharge())+"\n"; totalAmount += each.getCharge(); } // add footer lines result += "Amount owned is "+String.valueOf( totalAmount)+"\n"; result += "You earned "+String.valueOf( frequentRenterPoints)+ " frequent renter points"; return result; } class Rental... int getFrequentRenterPoints() { if( getMovie().getPriceCode()==Movie.NEW_RELEASE && getDaysRented()>1) return 2; else return 1; }
В начало | предыдущая | следующая