定义
定义一个用于创建对象的接口,让子类决定实例化哪个类。
使用场景
在任何需要生成复杂对象的地方,都可以使用工厂方法模式。复杂对象适合使用工厂模式,用new就可以完成创建的对象无需使用工厂模式。
UML图
UML由图可知,主要分为4大模块,一是抽象工厂,是工厂方法模式的核心;二是具体工厂,实现了具体的业务逻辑;三是抽象产品,是工厂方法模式所创建的产品的父类;四是具体产品,为实现抽象产品的某个具体产品对象。
代码实现
interface Factory {
Product createProduct();
}
class AFactory implements Factory {
@Override
public Product createProduct() {
return new AProduct();1
}
}
工厂类
interface Product {
void use();
}
class AProduct implements Product {
@Override
public void use() {
System.out.println("使用A");
}
}
产品类
优势
用户不需要关心产品是用方法的具体实现,只需要使用对应的工厂类进行创建即可。产品的使用方法接口进行统一,拥有两良好的扩展性,实现了面向接口编程。
网友评论