Java Reference
In-Depth Information
SOLUTION 17.2
Here is one solution:
package com.oozinoz.check.canada;
import com.oozinoz.check.*;
public class CheckFactoryCanada extends CheckFactory
{
public BillingCheck createBillingCheck()
{
return new BillingCheckCanada();
}
public CreditCheck createCreditCheck()
{
if (isAgencyUp())
{
return new CreditCheckCanadaOnline();
}
else
{
return new CreditCheckOffline();
}
}
public ShippingCheck createShippingCheck()
{
return new ShippingCheckCanada();
}
}
Your solution should
•
Have
create-
methods for each interface in
com.oozinoz.check
•
Have the proper interface for the return type of each
create-
method
•
Return a
CreditCheckOffline
object if the agency is down
SOLUTION 17.3
A version of
CheckFactory.java
that makes U.S. and Canada factories readily available
is:
package com.oozinoz.check;
import com.oozinoz.check.us.CheckFactoryUS;
import com.oozinoz.check.canada.CheckFactoryCanada;
public abstract class CheckFactory {
public static final CheckFactory US =
new CheckFactoryUS();
public static final CheckFactory CANADA =
new CheckFactoryCanada();
public abstract BillingCheck createBillingCheck();