Solution: Programming according to UML
Completion requirements
1 public class Product { 2 private String name; 3 private double prize; 4 private int number; 5 6 Product(String name, double prize, int number) { 7 this.name = name; 8 this.prize = prize; 9 this.number = number; 10 } 11 12 public String getName() { 13 return name; 14 } 15 public double getPrize() { 16 return prize; 17 } 18 public int getNumber() { 19 return number; 20 } 21 }
1 public class Factory { 2 private Product product; // factory produrces 1 product 3 4 Factory(Product product) { 5 this.product = product; 6 } 7 8 public double calculateTurnover() { 9 return product.getNumber() * product.getPrize(); 10 } 11 }
1 import javax.xml.ws.FaultAction; 2 import java.util.ArrayList; 3 4 public class Company { 5 private ArrayList<Factory> factories = new ArrayList<>(); // company holds * factories 6 7 Company(ArrayList factories) { 8 this.factories = factories; 9 } 10 11 public double calculateTotalTurnover() { 12 double totalTurnover = 0; 13 for (Factory factory: factories) 14 totalTurnover += factory.calculateTurnover(); 15 return totalTurnover; 16 } 17 }
1 import java.util.ArrayList; 2 import java.util.Arrays; 3 4 public class Main { 5 6 public static void main(String[] args) { 7 Factory f1 = new Factory(new Product("4 TiB Hard disk", 195.5, 7000)); // Composition 8 Factory f2 = new Factory(new Product("250 GiB SSD", 149.9, 6000)); 9 10 Company c1 = new Company(new ArrayList<Factory>(Arrays.asList(f1, f2))); // Aggregation 11 12 System.out.println(c1.calculateTotalTurnover()); 13 } 14 }

Last modified: Monday, 13 May 2019, 10:03 AM