抽象工厂模式(Abstract Factory)
抽象工厂模式解决
抽象工厂类图UML
抽象工厂模式的主要角色
代码实现
抽象工厂方法再探究
优缺点
适用示例
**解决工厂方法模式的问题:**一个具体工厂只能创建一类产品,而实际过程中一个工厂往往需要生成很多的产品,这种可以采用抽象工厂模式。
**定义:**提供一个创建一系列相关或者互相依赖对象的接口,无需指定他们的具体的类,具体的工厂负责实现具体的产品的实例。使一个工厂可以产生多个产品。
**抽象工厂(AbstractFactory):**提供了创建产品的接口,包含了多个创建产品的接口方法,可以创建多个不同等级的产品
**具体工厂(ConcreteFactory):**实现了抽象工厂定义的方法,完成具体产品的创建
**抽象产品(Product):**定义了产品的规范,描述产品的主要特征和性能
**具体产品(ConcreteProduct):**实现了抽象产品的定义的方法,有具体工厂来创建产品,具体工厂和具体产品一对多关系
抽象工厂方法实现:
public interface AbstractFactory {
public Product1 createProduct1();
public Product2 createProduct2();
}
public class ConcreteFactory1 implements AbstractFactory {
@Override
public Product1 createProduct1() {
System.out.println("具体工厂1产生具体产品1...");
return new ConcreteProduct1();
}
@Override
public Product2 createProduct2() {
System.out.println("具体工厂1产生具体产品2...");
return new ConcreteProduct2();
}
}
使用步骤:
**解决问题:**每个工厂只能创建一类产品,即是工厂方法的缺点
优点:
缺点:
王者荣耀中提供了很多的英雄,英雄分为射手、辅助、打野、坦克等职业,不同的职业对应的技能,属性不同。声明坦克、法师、刺客等多个工厂子类,每个工厂可以生产相应技能的应用。
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/qq_45981295/article/details/122483397
内容来源于网络,如有侵权,请联系作者删除!