package factoryMethod;
public interface Mobile {
public void call();
}
public class Motorola implements Mobile {
public void call() {
System. out .println( "Motorola produced" );
}
}
public class Nokia implements Mobile {
public void call() {
System. out .println( "Nokia produced" );
}
}
public interface MobileFactory {
public Mobile produceMobile();
}
public class MotorolaFactory implements MobileFactory {
public Mobile produceMobile(){
return new Motorola();
}
}
public class NokiaFactory implements MobileFactory{
public Mobile produceMobile(){
return new Nokia();
}
}
public class Client {
public static void main(String args[]){
MobileFactory mf = new MotorolaFactory();
Mobile mb = mf.produceMobile();
mb.call();
mf = new NokiaFactory();
mb = mf.produceMobile();
mb.call();
}
}
运行结果:
Motorola produced
Nokia produced
A factory method can be defined as a method in a class that:
(1)Selects an appropriate class from a class hierarchy based on the application context and other influencing factors
(2)Instantiates the selected class and returns it as an instance of the parent class type