/** * Test the customer and provider classes */ public class TestProviderAndCustomer { public static void main(String[] args) { // Two customers Customer bigBoss = new Customer("Bill Gates", "Seattle"); Customer notSoBigBoss = new Customer("Steve Jobs", "Cupertino"); bigBoss.setAddress("Redmond"); System.out.println(bigBoss); System.out.println(notSoBigBoss); System.out.println(); // One provider Provider foodProvider = new Provider("Sweet treats", "Seattle"); foodProvider.addProduct("Cookies"); foodProvider.addProduct("Drinks"); System.out.println(foodProvider); System.out.println(); // Print some address labels printCustomerAddressLabel(bigBoss); printProviderAddressLabel(foodProvider); System.out.println(); // Better use an interface printAddressLabel(bigBoss); printAddressLabel(foodProvider); } /** * Print an address label (without an interface) */ public static void printCustomerAddressLabel(Customer c) { System.out.println(c.getName() + "\n" + c.getAddress()); } public static void printProviderAddressLabel(Provider p) { System.out.println(p.getName() + "\n" + p.getAddress()); } /** * Better: use the interface BusinessContact */ public static void printAddressLabel(BusinessContact bc) { System.out.println(bc.getName() + "\n" + bc.getAddress()); } }