Consider the following code snippet:  public class InvoicePr…

Questions

Cоnsider the fоllоwing code snippet:  public clаss InvoicePrinter {     public void printInvoice(Invoice invoice) {         double totаl = invoice.getSubtotаl() + invoice.getTax() + invoice.getShippingCost()          System.out.println(“Customer: “ + invoice.getCustomer().getName());          System.out.println(“Subtotal: “ + invoice.getSubtotal());          System.out.println(“Tax: “ + invoice.getTax());          System.out.println(“Shipping: “ + invoice.getShippingCost());          System.out.println(“Total: “ + total);         } }  public class Invoice {       private double subtotal;        private double tax;        private double shippingCost;        private Customer customer;        // getters}   Which code smell most describes this design, and what is the most appropriate refactoring treatment?