forked from Dev-Outreach/bad-code
-
Notifications
You must be signed in to change notification settings - Fork 0
DRY Code Solutions
TStream edited this page Mar 22, 2017
·
2 revisions
Repeated Code Example 1 Solution:
public void example_one_solution(){
int[] array_a = {1,2,3,4,5,6,7,8,9};
int average_a = calc_average(array_a);
int[] array_b = {2,4,6,8,10,12,14,16,18};
int average_b = calc_average(array_b);
}
public int calc_average(int[] array) {
int sum = 0;
for (int i = 0; i < array.length; i++){
sum += array[i];
}
return sum / array.length;
}Repeated Code Example 2 Solution:
public void exampleTwoSolution(int amount, String type){
String displayAmount = "";
switch (type.toUpperCase()) {
case "CEO":
displayAmount = finalAmount(amount, 0.9, 0.99);
break;
case "MGR":
case "AMRG":
displayAmount = finalAmount(amount, 0.4, 0.50);
break;
case "SE":
displayAmount = finalAmount(amount, 0.2, 0.25);
break;
case "JE":
displayAmount = finalAmount(amount, 0.2, 0.15);
break;
case "LC":
case "FF":
displayAmount = finalAmount(amount, 0.1, 0.10);
break;
default:
displayAmount = finalAmount(amount, 0, 0);
break;
}
}
public string finalAmount(int amount, double discount1, double discount2) {
double finalAmount = (amount - (discount1 * amount)) - discount2 * (amount - (discount1 * amount));
DecimalFormat df = new DecimalFormat("0.00");
return df.format(finalAmount);
}