Factory Method Design Pattern工场方法模式
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