工厂模式的结构如下图所示:
工厂模式的参与者包括:
1. Product: 所定义的工厂方法所要创建的对象的接口。
2. ConcreteProduct: 实现 Product。创建的实际对象类。
3. Factory:声明工厂方法
4. ConcreteFactory:实体工厂。用于创建产品。
下面是工厂方法(Factory Method)设计模式的一个例子。该例子中,使用工厂模式创建手机对象。
MobileFactory.java:
public interface MobileFactory{
public Mobile produceMobile();
}
MotorolaFactory.java:
public class MotorolaFactory implements MobileFactory{
public Mobile produceMobile(){
return new Motorola();
}
}
NokiaFactory.java:
public class NokiaFactory implements MobileFactory{
public Mobile produceMobile(){
return new Nokia();
}
}
Mobile.java:
public interface Mobile{
public void call();
}
Motorola.java:
public class Motorola implements Mobile{
public void call(){
System.out.println("Motorola producted");
}
}
Nokia.java:
public class Nokia implements Mobile{
public void call(){
System.out.println("Nokia producted");
}
}
Client.java:
public class Client{
public static void main(String[] args){
MobileFactory mbf = new NokiaFactory();
Mobile mb=mbf.produceMobile();
mb.call();
mbf= new MotorolaFactory();
mb=mbf.produceMobile();
mb.call();
}
}
需要注意的是,这个例子同样也是Abstract Factory 抽象工厂模式的例子,只是这里只生产一种产品 Mobile。