工厂方法模式(Factory Method Pattern):定义一个用于创建对象的接口,让子类决定将哪一个类实例化。工厂方法模式让一个类的实例化延迟到其子类。
结构图:
YML-示例图
示例:
//java学习交流:737251827 进入可领取学习资源及对十年开发经验大佬提问,免费解答!
public interface Factory {
public Product factoryMethod();
}
public class ConcreteFactory implements Factory {
public Product factoryMethod() {
return new ConcreteProduct();
}
}
public abstract class Product {
public abstract void method();
}
public class ConcreteProduct extends Product {
@Override
public void method() {
}
}
应用场景:
-
用户不需要关心复杂对象的创建过程
-
需要创建过程和使用过程很好的解耦
优点:
-
工厂方法用来创建客户所需要的对象时,隐藏了实现细节
-
当加入新的对象中,无需修改原有代码,完全符合开闭原则
缺点:
-
当加入新的对象时,需要写新的工厂方法,即使是很简单的对象,这无疑增加了软件的复杂度