Question: For each problem, study the supplied code, and list the code smells you see. For this exercise the code smells should be one of these:
For each problem, study the supplied code, and list the code smells you see. For this exercise the code smells should be one of these:
- long method,
- large class,
- duplicate code (aka cut and paste code),
- long parameter list,
- primitive obsession, and
- magic numbers.
For each code smell,
- list the line numbers of the code where the smell is focused,
- identify the design principle(s) that are violated, and
- identify some program change that the smell would complicate.
1.
public class BodyMass {
public void calculateEverything(String name, double height,
double weight, int age) {
System.out.printf("%s's BMI is %.2f", name,
(703 * weight / (height * height))
);
}
public static void main(String[] args) {
BodyMass lp = new BodyMass ();
lp.calculateEverything("John", 67, 150, 20);
}
}
2.
public class EventSchedule{
public int month;
public int date;
public String day;
public int hour;
public int minute;
}
3,
public class PairedAverage{
private int[] ar1 = {1,2,3,4,5};
private int[] ar2 = {2,4,6,8,10};
public void calculateEverything() {
int ans1 = 1;
int div1 = 0;
for(int i=0;i ans1 *= ar1[i]; div1 = ans1 / ar1.length; System.out.println("The average is " + div1); int ans2 = 1; int div2 = 0; for(int i=0;i ans2 *= ar2[i]; div2 = ans2 / ar2.length; System.out.println("The average is " + div2); } } Smells and locations? Design principles? Maintenance Consequences?
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
