Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

I wanted extra clarification on how one would be able to identify object-oriented design violations, and coupling issues, and being able to apply that fix

I wanted extra clarification on how one would be able to identify object-oriented design violations, and coupling issues, and being able to apply that fix for that particular project file. Take for instance the following:

Say we have a personnel directory management system that holds the following java files:

------------------------------------------------------------------------------------------------------------------------------------

Employee.java:

public class Employee extends Person{ private int empID; private double baseSalary; public Employee(String last, String first, String middle, int id, double sal) { super(last, first, middle); empID = id; baseSalary = sal;

}

public int getID() { return empID;

}

}

------------------------------------------------------------------------------------------------------------------------------------

Person.java

public class Person { public String last; public String first; public String middle;

public Person(String last, String first, String middle) { this.last = last; this.first = first; this.middle = middle;

}

public void printName(int order) {

if(order == 0) { System.out.println(first + " " + middle + " " + last);

}else if(order == 1) {

System.out.println(last + " ," + middle + " " + first);

} else if(order == 2) {

System.out.println(last + " ," + first + " " + middle);

} } } ------------------------------------------------------------------------------------------------------------------------------------

Personnel.java

import java.util.*; public class Personnel {

public ArrayList personList;

public Personnel() { personList = new ArrayList(); }

public void addPersonnel(Person p) { personList.add(p); } }

------------------------------------------------------------------------------------------------------------------------------------

PersonnelDirectory.java

import java.util.Scanner; public class PersonnelDirectory {

public static void main(String[] args) { Personnel per = new Personnel(); totalObjects total = new totalObjects(); Scanner scan = new Scanner(System.in); String firstN, lastN, middleN; int empID; double salary; int choice = -1;

do{

System.out.println("Welcome to the Personnel Directory Management System"); System.out.println("====================================================");

System.out.println(" \t 1. Add Personel"); System.out.println(" \t 2. Find Personel"); System.out.println(" \t 3. Print Names"); System.out.println(" \t 4. Number of Entries in the Directory");

System.out.println(" \t Select one of the options above (1, 2, 3, 4)"); choice = scan.nextInt(); scan.nextLine();

switch(choice) { case 1: System.out.println("Enter first name: "); firstN = scan.nextLine(); System.out.println("Enter last name: "); lastN = scan.nextLine(); System.out.println("Enter middle name: "); middleN = scan.nextLine();

System.out.println("Enter empploy id : "); empID = scan.nextInt(); System.out.println("Enter base salaey" ); salary = scan.nextDouble(); scan.nextLine();

Employee e1 = new Employee(lastN, firstN, middleN, empID, salary);

per.addPersonnel(e1); total.objectAdded();

break;

case 2:

System.out.println("Enter firts name : "); firstN = scan.nextLine();

System.out.println("Enter last name : "); lastN = scan.nextLine();

boolean found = false; int loc =-1; for(int i =0; i

if(found) { System.out.println("Found"); per.personList.get(loc).printName(0);

}else { System.out.println("not found"); Person p1 = new Person(lastN, firstN, " "); per.personList.add(p1); total.objectAdded(); }

break;

case 3:

System.out.println("Enter the order 0: first, middle, last, 1: first, last, middle, 2: last, first , middle "); int order = scan.nextInt(); for(int i=0; i

per.personList.get(i).printName(order); }

break;

case 4: System.out.println("Total Entries : " + total.getTotalObjects());

break;

}

} while(true); }

}

------------------------------------------------------------------------------------------------------------------------------------

totalObjects.java

public class totalObjects {

private static int numObjects = 0;

public totalObjects() { numObjects=0; }

public void objectAdded() { numObjects++; }

public int getTotalObjects() { return numObjects; } }

------------------------------------------------------------------------------------------------------------------------------------

Can you address what glaring issues are? and how would you structure the final code that eliminates the object-oriented design violations including coupling? Any help matters, and thank you for your time!

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access with AI-Powered Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions