| public double getCommissionPrice() { double commissionPrice = 0.0; IPricingPlan plan; Class commissionClass; try { if( getCustomer().getPlanId() == 1 ) { commissionClass = Class.forName( "string_interfaces.PricingPlan20" ); } else { commissionClass = Class.forName( "string_interfaces.PricingPlan1510" ); } plan = (IPricingPlan) commissionClass.newInstance(); commissionPrice = plan.calculateCommission( this ); } // ClassNotFoundException, InstantiationException, IllegalAccessException catch( Exception e ) { System.out.println( "Exception occurred: " + e.getMessage() ); e.printStackTrace(); } return commissionPrice; } |
| public class Trade extends Object { private Customer customer; private static final String[] pricingPlans = { "string_interfaces.PricingPlan20", "string_interfaces.PricingPlan1510", "string_interfaces.PricingPlan8", "string_interfaces.PricingPlan10" }; |
| public double getCommissionPrice() { double commissionPrice = 0.0; IPricingPlan plan; Class commissionClass; try { commissionClass = Class.forName( pricingPlans[ getCustomer().getPlanId() - 1 ] ); plan = (IPricingPlan) commissionClass.newInstance(); commissionPrice = plan.calculateCommission( this ); } // ClassNotFoundException, InstantiationException, IllegalAccessException catch( Exception e ) { System.out.println( "Exception occurred: " + e.getMessage() ); e.printStackTrace(); } return commissionPrice; } |