[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends-ml 10407] 第1章のメソッ ドの抽出と JBuilder7
高橋(智)です。
第1章のメソッドの抽出で、IDEを使ったらどうなるのだろう??? という話が
出ましたが、JBuilder7 Enterprise版にて amountForメソッドとして抽出して
みました。結果は以下のとおりです。
他のIDEではどうなるのでしょうか...
--- メソッドの抽出前 ------------------------------------------
public class Customer {
...
...
public String statement() {
...
...
while( rentals.hasMoreElements() ) {
double thisAmount = 0;
Rental each = (Rental)rentals.nextElement();
// 一行ごとに金額を計算
switch( each.getMovie().getPriceCode() ) {
case Movie.REGULAR:
thisAmount += 2;
if( each.getDaysRented() > 2 )
thisAmount += (each.getDaysRented() - 2) * 1.5;
break;
case Movie.NEW_RELEASE:
thisAmount += each.getDaysRented() * 3;
break;
case Movie.CHILDRENS:
thisAmount += 1.5;
if( each.getDaysRented() > 3 )
thisAmount += (each.getDaysRented() - 3) * 1.5;
break;
}
...
...
}
...
}
}
---------------------------------------------------------------
--- メソッドの抽出後 ------------------------------------------
public class Customer {
...
...
public String statement() {
...
...
while( rentals.hasMoreElements() ) {
double thisAmount = 0;
Rental each = (Rental)rentals.nextElement();
thisAmount = amountFor(thisAmount, each);
...
...
}
...
}
private double amountFor(double thisAmount, Rental each) {
// 一行ごとに金額を計算
switch( each.getMovie().getPriceCode() ) {
case Movie.REGULAR:
thisAmount += 2;
if( each.getDaysRented() > 2 )
thisAmount += (each.getDaysRented() - 2) * 1.5;
break;
case Movie.NEW_RELEASE:
thisAmount += each.getDaysRented() * 3;
break;
case Movie.CHILDRENS:
thisAmount += 1.5;
if( each.getDaysRented() > 3 )
thisAmount += (each.getDaysRented() - 3) * 1.5;
break;
}
return thisAmount;
}
}
---------------------------------------------------------------
--
高橋智宏